在散点图中连接所有点(可能的合并)

fpr*_*prd 5 plot r line connect

这是一个小数据集:

myd <- data.frame(PC1 = rnorm(5, 5, 2), 
PC2 = rnorm (5, 5, 3), label = c("A", "B", "C", "D", "E"))
plot(myd$PC1, myd$PC2)
text( myd$PC1-0.1, myd$PC2, lab = myd$label)
Run Code Online (Sandbox Code Playgroud)

我希望连接直线(欧几里德)距离线之间的所有可能组合,以产生这样的图形(最好在基本图形或ggplot2中)

在此输入图像描述

koh*_*ske 6

这是基础图解决方案:

plot(myd$PC1, myd$PC2)
apply(combn(seq_len(nrow(myd)), 2), 2, 
      function(x) lines(myd[x, ]$PC1, myd[x, ]$PC2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是ggplot2解决方案:

ps <- data.frame(t(apply(combn(seq_len(nrow(myd)), 2), 2, 
                         function(x) c(myd[x, ]$PC1, myd[x, ]$PC2))))
qplot(myd$PC1, myd$PC2) +
  geom_segment(data = ps, mapping = aes(x = X1, xend = X2, y = X3,yend = X4))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述