在r图中的点之间添加所有可能的连接

时间:2018-11-06 04:12:49

标签: r plot

我有包含以下列的数据帧DOTS:DOT,X,Y。有10个点。

我想显示所有可能的连接:(a)点1,2,3,4,5之间; (b)5,6,7;和(c)在7,8,9,10之间?

map

预先感谢您的建议。

1 个答案:

答案 0 :(得分:2)

我先创建一个数据集:

x <- runif(10, 0, 10)
y <- runif(10, 0, 10)
df <- data.frame(dot = LETTERS[1:10], x = x, y = y)

我认为创建自定义函数并使用combn()生成两个点的所有可能组合是很灵活的。然后将它们分别与segments()连接。在下面的自定义函数中,您可以放置​​任何点集和参数,例如collwd ...等等。

plot(df$x, df$y)
text(df$x, df$y, labels = df$dot, pos = 3)

line.fun <- function(index, ...){
  comb <- combn(index, 2)
  start <- comb[1, ] # starting points
  end <- comb[2, ]   # end points
  segments(df$x[start], df$y[start], df$x[end], df$y[end], ...)
}

line.fun(1:5, col = 2)
line.fun(5:7, col = 3)
line.fun(7:10, col = 4)

enter image description here