統計解析フリーソフトRを使って散布図を作成しています。
添付画像の青まる1と赤まる1、青まる1と黄まる1、
以下同様に各数字の青まると赤まる、青まると黄まるを線で結ぶ方法を模索しています。
作図した際のスクリプトは以下です。
s.dist<-dist(Dataset[2:17])
s.cmd<-cmdscale(s.dist)
P<-c(16,16,16)[unclass(Dataset[,18])]
C<-c("blue","red","orange")[unclass(Dataset[,18])]
plot(s.cmd,pch=P,col=C,xlim=c(-37,17), ylim=c(-13,13))
text(s.cmd, labels=Dataset[,19], pos=1, offset=.5, cex=.8)
Datasetの19行目が識別番号(1〜6)となっています。
希望している作図ができるのかどうかもわかりませんので、
その辺りもご指摘いただけると助かります。
また、情報が足りなかったり、質問ジャンルを間違えているようでしたら
重ねてご指摘ください。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
#1です。
下記、追加部分を実行して下さい。
矢印の傘が不要ならarrowsの引数のlengthを=0にして下さい。
groupの番号ですが、色や線を振る順に並べた方がいいですよ。
今回は、ifelse(g==1,3,1)で対処しています。
問題が単純だから、これで対処しましたが、
複雑であれば、番号を振り直した方が早いです。
Dataset <- read.csv("Dataset.csv")
s.dist <- dist(Dataset[2:15])
s.cmd <- cmdscale(s.dist)
P <- c(16,16,16)[unclass(Dataset[,16])]
C <- c("blue","red","orange")[unclass(Dataset[,16])]
plot(s.cmd,pch=P,col=C)
text(s.cmd,labels=Dataset[,17],pos=4,offset=0.5,cex=0.8)
#
# 追加部分
#
for(n in 1:4){
for(g in 1:2){
start <- s.cmd[Dataset[,16]==g & Dataset[,17]==n,]
end <- s.cmd[Dataset[,16]==ifelse(g==1,3,1) & Dataset[,17]==n,]
arrows(start[1],start[2],end[1],end[2],code=2,length=0.1)
}}
ご教授いただきありがとうございます。
Rコマンダーでスクリプトを入力してみたところエラーが返されましたが、
R自体に入力したら矢印付きの作図が確認できました。
ありがとうございました。
重ねてお尋ねしますが、
for(n in 1:4){
こちらは1 groupのno.が4つ振られているからだと思いますが、
for(g in 1:2){
こちらの意味合いはどういったものなのでしょう…。
> 今回は、ifelse(g==1,3,1)で対処しています。
> 問題が単純だから、これで対処しましたが、
ほとんど専門ではないので、追加いただいたスクリプトを理解するのはなかなか難しいです。
実際のデータと照らし合わせて、理解できるものは解明してみたいと思います。
この度はご親切にお付き合いいただきありがとうございました。
とても感謝しております。
No.3
- 回答日時:
#1,#2です。
スクリプトは簡単ですので、事例を示しますが、
入力データをカンマ区切りに直して、再投稿願います。
今の状態でもいいですが、こっちで直すのは、ちょっと面倒なので。
No.2
- 回答日時:
#1です。
polygon() は多角形を描く関数ですので、
私の勘違いですから、以下を考えて下さい。
線を引くだけなら、
lines() か
arrows() を使います。
arrows は矢印を描きますが、傘の部分を無しにすることもできます。
私は、時系列グラフを線でどんどんつなぐときにlines()を、
今のような分析(例えば主成分分析)のサンプル間の関係
例えば、2013年→2014年→2015年と結ぶ時はarrows()を使います。
お付き合いいただきありがとうございます。
今回のような主座標や主成分分析の場合、プロットされる座標は作図されないと確認できない気がしています。
客観的に見て、「ペイントで線が引けるならそれでいいじゃん」と思われればそれまでなのですが、
作図に関していくつかヒントはいただけた気がしています。
もし、更なるご協力をいただけるようでしたら、
arrows()を含めたスクリプトをお教えいただけると助かります。
ですが、元々そこまで求めるようなサイトではないとも考えますので、
私自身は「もし、お付き合いいただけるのであれば」といった心情です。
ご協力、ありがとうございました。
No.1
- 回答日時:
多次元尺度構成法を試したのですね。
であれば、数学のところで聴くのが良いと思います。
三角形を描くのですか?
polygon(x,y)
を使います。
for(n in 1:5){ # 6が欠損のため、5まで
polygon(s.cmd[Dataset[,19]==n,1],s.smd[Dataset[,19]==n,2]])
}
かなあ。(もしかすると、起点に戻れないかもしれない)
実際のデータが無いので検証できません。
また、Dataset[,19]がfactorなら、==n では動かないかもしれません。
あと、スクリプトの軸の指定と添付図はまったく違います。
ご回答ありがとうございます。
> 数学のところで聴くのが良いと思います。
ご指摘ありがとうございます。
適したジャンルに投稿できていたようで安心しました。
群集生物学(のつもり)だし、スクリプトの質問だったので、
どこに質問したらいいのか迷っていました。
> 三角形を描くのですか?
三角形というよりは、さくらんぼやアメリカンクラッカーのように結合させたいと考えています。
> スクリプトの軸の指定と添付図はまったく違います。
確かに。失礼いたしました。
コピペしたスクリプトと添付した画像を間違えました。
現在、手元には添付したファイルもデータもありませんので、
再度、データ作成いたしました。
補足にて、投稿させていただきます。
追記ですが、スクリプトって難しいですね。
回答いただけて、とても感謝しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) PowerPointの背景について 1 2023/03/12 15:22
- 高校 数学A組み合わせの考え方 3 2022/04/19 09:05
- 統計学 ファンネルプロット(ファネルプロット)について。 現在統計学について勉強している者です。 文献を集め 1 2022/04/22 19:21
- 統計学 加重最小二乗法=①「変数を自然対数変換」=②「誤差項の分散の逆数を重み付け」? 8 2022/11/26 11:15
- Excel(エクセル) Excel 数式を使用した条件付き書式が、一つのセルにしか反映されない 3 2022/06/08 23:20
- 大学受験 学習院大 数A 確率の問題について質問です。 2 2023/06/02 15:53
- 建築士 建築士製図試験での縦距離の数値の書き方を教えて下さい 3 2023/07/16 11:36
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- 統計学 IPCAで次元削減された画像の表示 1 2023/01/05 09:54
- HTML・CSS VS.NETのコードを色合いも含めてHtmlに貼り付けたい。 1 2023/02/02 14:15
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
物を借りた時のお返し
-
ボクは病気です!花ぬ山率のん...
-
「ましょうか」は丁寧?
-
落とし物を諦める日数
-
バルサンを焚いて1週間ほど締め...
-
日本語「あなた」「君」「お前...
-
雨の日に洗っても取れない汚れ...
-
傘盗まれた 諦めるしかない…で...
-
傘立てに入れた傘を盗まれたの...
-
人から借りた傘 人から借りた傘...
-
傘を電車内などに置き忘れてし...
-
傘をかぶる
-
和傘
-
ビニール傘をまとめるボタンの...
-
雨が降っているときの買い物。...
-
雨の日にホテルにチェックイン...
-
傘を貸そうとしましたが受け取...
-
胸をジロジロ見る=痴漢(とみな...
-
昨日の朝、傘をコンビニの傘立...
-
旅行に行くと必ず夫婦喧嘩にな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボクは病気です!花ぬ山率のん...
-
バルサンを焚いて1週間ほど締め...
-
「ましょうか」は丁寧?
-
落とし物を諦める日数
-
日本語「あなた」「君」「お前...
-
ネッ友に住所教えてしまいまし...
-
ジャンプ傘が開かなくなりました
-
急ぎです! 今日友達とイオンモ...
-
ユニバに傘を持ってきたのです...
-
職場での傘の盗難
-
傘盗まれた 諦めるしかない…で...
-
キャッシュカードを拾ってもら...
-
傘立てに入れた傘を盗まれたの...
-
心が狭いのでしょうか? ひと月...
-
盗まれた傘は、帰ってくると思...
-
人から借りた傘 人から借りた傘...
-
傘の持ち手の修理方法教えてく...
-
傘をかぶる
-
カーナビの傘マークは何を意味...
-
旅行に行くと必ず夫婦喧嘩にな...
おすすめ情報
現在、質問のに添付したデータが手元にないので、
別のデータを基に作図し直しました。
今回の作図スクリプトとデータを投稿します。
s.dist <- dist(Dataset[2:15])
s.cmd <- cmdscale(s.dist)
P <- c(16,16,16)[unclass(Dataset[,16])]
C <- C <- c("blue","red","orange")[unclass(Dataset[,16])]
plot(s.cmd, pch=P, col=C)
text(s.cmd, labels=Dataset[,17], pos=1, offset=.5, cex=.8)
文字数の関係で投稿できなかったので、データはこちらになります。
name A B C D E F G H I J K L M N group no.
d153 0.45 0.47 0.00 1.79 1.85 32.97 16.49 0.00 19.01 1.21 5.90 3.12 0.00 9.04 1 1
d154 8.94 0.35 0.00 1.07 4.81 18.04 14.82 0.00 7.40 1.74 6.84 11.75 0.00 13.64 1 2
d155 0.91 0.31 0.00 1.15 2.85 29.69 0.00 0.00 6.26 2.18 1.94 19.98 0.00 19.09 1 3
d156 0.42 0.30 0.00 0.88 7.57 20.58 0.00 0.00 9.12 4.30 2.70 20.65 0.34 16.10 1 4
d157 0.53 0.50 0.00 1.95 0.74 56.25 0.00 0.00 3.10 1.52 6.98 5.45 0.22 16.26 2 1
d158 0.18 0.27 0.00 0.63 3.32 23.78 0.00 0.00 9.69 2.04 10.56 25.05 0.27 8.46 2 2
d159 0.30 0.29 0.00 0.95 4.50 31.34 0.00 0.00 8.70 1.98 3.29 21.36 0.30 12.33 2 3
d160 0.37 0.31 0.00 1.14 4.27 34.53 0.00 0.00 5.86 3.10 0.89 21.93 0.00 11.85 2 4
d161 0.35 0.55 0.16 2.70 0.00 24.86 19.65 0.00 2.32 0.93 11.37 0.87 0.48 31.39 3 1
d162 0.27 0.54 0.13 1.93 0.22 9.96 29.81 0.00 4.86 0.88 17.00 1.62 0.39 27.17 3 2
d163 0.21 0.34 0.00 1.17 3.01 33.68 0.00 0.00 7.28 3.36 12.40 9.17 0.29 21.40 3 3
d164 0.41 0.19 0.19 1.30 2.25 18.75 0.00 0.11 22.54 1.75 2.18 5.21 1.46 38.91 3 4
その他、「こうしたい」という作図例です。
今回投稿したスクリプトとデータを基に作図しました。
図に記載されている線は「ペイント」で結びました。
いざとなったら、このようなソフトで手書きすることになるのかもしれません。
ご提案いただいた
for(n in 1:5){polygon(s.cmd[Dataset[,19]==n,1],s.smd[Dataset[,19]==n,2]])}
をRスクリプトの最後に実行してみたのですが、
「エラー:<text>」となってしまいました。
関数(?)「polygon」で少し検索してみます。
カンマ区切りのデータです。
name,A,B,C,D,E,F,G,H,I,J,K,L,M,N,group,no.
d153,0.45 ,0.47 ,0.00 ,1.79 ,1.85 ,32.97 ,16.49 ,0.00 ,19.01 ,1.21 ,5.90 ,3.12 ,0.00 ,9.04 ,1,1
d154,8.94 ,0.35 ,0.00 ,1.07 ,4.81 ,18.04 ,14.82 ,0.00 ,7.40 ,1.74 ,6.84 ,11.75 ,0.00 ,13.64 ,1,2
d155,0.91 ,0.31 ,0.00 ,1.15 ,2.85 ,29.69 ,0.00 ,0.00 ,6.26 ,2.18 ,1.94 ,19.98 ,0.00 ,19.09 ,1,3
d156,0.42 ,0.30 ,0.00 ,0.88 ,7.57 ,20.58 ,0.00 ,0.00 ,9.12 ,4.30 ,2.70 ,20.65 ,0.34 ,16.10 ,1,4
d157,0.53 ,0.50 ,0.00 ,1.95 ,0.74 ,56.25 ,0.00 ,0.00 ,3.10 ,1.52 ,6.98 ,5.45 ,0.22 ,16.26 ,2,1
d158,0.18 ,0.27 ,0.00 ,0.63 ,3.32 ,23.78 ,0.00 ,0.00 ,9.69 ,2.04 ,10.56 ,25.05 ,0.27 ,8.46 ,2,2
d159,0.30 ,0.29 ,0.00 ,0.95 ,4.50 ,31.34 ,0.00 ,0.00 ,8.70 ,1.98 ,3.29 ,21.36 ,0.30 ,12.33 ,2,3
d160,0.37 ,0.31 ,0.00 ,1.14 ,4.27 ,34.53 ,0.00 ,0.00 ,5.86 ,3.10 ,0.89 ,21.93 ,0.00 ,11.85 ,2,4
d161,0.35 ,0.55 ,0.16 ,2.70 ,0.00 ,24.86 ,19.65 ,0.00 ,2.32 ,0.93 ,11.37 ,0.87 ,0.48 ,31.39 ,3,1
d162,0.27 ,0.54 ,0.13 ,1.93 ,0.22 ,9.96 ,29.81 ,0.00 ,4.86 ,0.88 ,17.00 ,1.62 ,0.39 ,27.17 ,3,2
d163,0.21 ,0.34 ,0.00 ,1.17 ,3.01 ,33.68 ,0.00 ,0.00 ,7.28 ,3.36 ,12.40 ,9.17 ,0.29 ,21.40 ,3,3
d164,0.41 ,0.19 ,0.19 ,1.30 ,2.25 ,18.75 ,0.00 ,0.11 ,22.54 ,1.75 ,2.18 ,5.21 ,1.46 ,38.91 ,3,4
どうぞよろしくお願いいたします。