その性質上、おそらくユニークです。
だから私はプロットを持っています(具体的には、古典的な多次元スケーリングプロットです)。通常、データ フレームがインポートされますR
が、ここではランダムに生成されたデータを使用するため、MDS
次のスクリプトを使用して .
a<-data.frame(replicate(10,sample(0:7,300,rep=TRUE)))
d <- dist(a)
fit <- cmdscale(d,eig=TRUE, k=2)
fit
x <- fit$points[,1]
y <- fit$points[,2]
plot(x, y, xlab="PC1", ylab="PC2",main="Metric MDS", type="n")
text(x, y, labels = row.names(a), cex=.7)
次に、すべての点の間に線を引きたいと思いました。私はそれをややぎこちなくしました:
myd<-data.frame(x,y,labels=row.names(a))
plot(myd$x, myd$y)
apply(combn(seq_len(nrow(myd)), 2), 2,
function(x) lines(myd[x, ]$x, myd[x, ]$y))
次に、別のデータ セットから単純な 3D 散布図を作成しました。
b<-data.frame(replicate(3,sample(0:30,300,rep=TRUE)))
plot3d(b$X1,b$X2,b$X3)
3D scatter-plot
& は、MDS プロットと同じ数のポイントを持つおなじみのものを取得しました。基本的に、 のすべてのポイントは3D scatter-plot
上のポイントに対応しMDS plot
ます。
私の質問には2つの部分があります:
a) MDS プロットの線分を引いた部分。2 点間のユークリッド距離が私の好みの指定された値を下回っている場合など、線を描画するタイミングに関するしきい値を指定する方法はありますか?
b)対応する点間で 3D 散布図の MDS プロットの点を結ぶ線分を転送またはシミュレートする方法は?
ノート:
ポイントのペアを1つずつ結合して手動でこれを行うことはできません。これには時間がかかるためです。
したがって、R に 2 つの異なる座標セット (MDS プロットからの 1 つ) と、3D 散布図を作成したデータ フレームからの対応付けを行うように指示する方法が必要です。そしてもちろん、3D散布図で意味をなすために、2点間の「距離」属性(つまり、線分の長さ)を別の属性(線の色や太さなど)として保持するようにRに指示する必要があります。何の意味もない。