Сначала я делаю набор данных:
x <- runif(10, 0, 10)
y <- runif(10, 0, 10)
df <- data.frame(dot = LETTERS[1:10], x = x, y = y)
Я думаю, что можно создать собственную функцию и использовать combn()
для генерации всех возможных комбинаций из двух точек. А затем соедините их с segments()
соответственно. В пользовательской функции, приведенной ниже, вы можете поместить любые установленные точки и аргументы, например, col
, lwd
... и т. Д.
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)