R 连接散点图中的所有点(可能的组合)
以下是小数据集:R 连接散点图中的所有点(可能的组合),r,plot,line,connect,R,Plot,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) myd以下是基本图解决方案: plot(myd$PC1, myd$PC2) apply(combn(seq_len(nrow(myd)),
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)
myd以下是基本图解决方案:
plot(myd$PC1, myd$PC2)
apply(combn(seq_len(nrow(myd)), 2), 2,
function(x) lines(myd[x, ]$PC1, myd[x, ]$PC2))
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))
以下是ggplot2解决方案:
plot(myd$PC1, myd$PC2)
apply(combn(seq_len(nrow(myd)), 2), 2,
function(x) lines(myd[x, ]$PC1, myd[x, ]$PC2))
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))
ps在ggplot中,您可以使用geom_段
绘制连接线
但是首先你必须用每条连接线的坐标来构造一个数据帧。使用combn()
查找所有组合:
comb <- combn(nrow(myd), 2)
connections <- data.frame(
from = myd[comb[1, ], 1:2],
to = myd[comb[2, ], 1:3]
)
names(connections) <- c("x1", "y1", "x2", "y2", "label")