Как связать 4 точки в каждой группе, чтобы визуализировать «направление движения»?

#r #plot

#r #график

Вопрос:

У меня есть матрица data , полученная из PCA. Каждая строка содержит пару координат. Более того, у меня есть вектор row_name , который содержит имя каждой строки. В частности, row_name является

    PAYS
1    AL
2    AL
3    AL
4    AL
5    AU
6    AU
7    AU
8    AU
9    BE
...
  

, то есть инициалы страны. Каждое имя появляется 4 раза, что соответствует 4 годам 1975, 1977, 1979 и 1981.

Я хотел бы спросить, как выделить группы из 4 точек, относящиеся к каждой стране, и связать их, чтобы визуализировать «направление движения» каждой страны. Большое спасибо за вашу помощь!

 OECD <- read.table("http://www.math.univ-toulouse.fr/~xgendre/ens/data/OCDE", col.names=c("PAYS", "NATA", "CHOM", "APRI", "ASEC", "PIB", "FBCF", "INFL", "RECC", "MINF", "PROT", "NRJ"))

ACP <- prcomp(OECD[-1],
              retx = TRUE,
              scale = TRUE)

data <- (ACP$x)[, 1:2]
row_name <- OECD[1]

plot(data,  pch = 2, col = "orange")
  

Ответ №1:

Вы можете добавить стрелки к своему графику с помощью arrows функции. Я выделил каждую группу стран другим цветом, чтобы было немного понятнее, какие точки в какой группе.

 plot(data,  pch = 2, col = rep(rainbow(nrow(data)/4), each=4))
for(i in seq(0,nrow(data)-4, 4)) {
    arrows(data[(1:3) i,1], data[(1:3) i,2], 
        data[(2:4) i,1], data[(2:4) i,2],
        length=0.1) }
  

Одна и та же страна, соединенная стрелками

Комментарии:

1. Большое вам спасибо! Это именно то, что я хочу.