1

由于其性质,它可能是独一无二的。

所以我有一个情节(特别是一个经典的多维缩放情节)。通常,我导入了一个数据框,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.

我的问题有两部分:

a)在我在 MDS 图上绘制线段的部分。有没有办法指定何时画线的阈值,即当两点之间的欧几里德距离低于我偏好的指定值时?

b)如何在 3d 散点图上的 MDS 图中的点在它们的对应点之间转移或模拟连接点的线段?

笔记:

我不能通过一个接一个地连接点对来手动执行此操作,因为这需要很长时间。
所以我需要一种方法来告诉 R 在 2 组不同的坐标(一个来自 MDS 图)和另一个来自我制作 3d 散点图的数据帧之间建立对应关系。当然,我需要告诉 R 保留 2 点之间的“距离”属性(即线段长度)作为不同的属性,例如线条颜色或粗细,以便在 3d 散点图中有意义,否则它会赢没什么意思。

4

0 回答 0