R - ggplot2 линии трассировки между «уложенными» точками

У меня возникают проблемы с тем, как я могу отслеживать линии (и, в конечном счете, стрелки) между двумя точками поверх других. Поэтому мой основной сюжет выглядит так:

 dt %>% 
  ggplot(aes(x = V2, y = V3, colour = V1) ) + geom_point(size = 3) + geom_point() +
  scale_colour_manual(values = c('gray44', 'black')) + 
  theme_minimal(base_size = 16) + geom_text(aes(x = V2, y = V3+1.05, label = V1)) 

введите описание изображения здесь

Поэтому я попытался создать «группы», чтобы отслеживать строку, но она не работает, и я хочу, чтобы точки, находящиеся на вершине друг друга, подключались:

dt = dt %>% group_by(V1) %>% mutate(grp = 1:n())

dt %>% 
  ggplot(aes(x = V2, y = V3, colour = V1) ) + geom_point(size = 3) + geom_point() +
  scale_colour_manual(values = c('gray44', 'black')) + 
  theme_minimal(base_size = 16) + geom_text(aes(x = V2, y = V3+1.05, label = V1)) +
  geom_path(data = dt, aes(V2, V3, group = grp))

В конце концов, я был бы очень интересно проследить стрелку , идущую от 1985к 1990, но я не могу понять

Я попытался добавить что-то вроде:

geom_segment(aes(x = V3[V1 == 1985], y = V3[V1 == 1985], xend = V3[V1 == 2000], yend = V3[V1 == 2000]), arrow = arrow(length = unit(0.5, "cm"))) 

но это не сработает.

Любая идея ?

введите описание изображения здесь

dt = structure(list(V1 = structure(c(1L, 2L, 1L, 2L, 1L, 2L), .Label = c("1985", 
"1990"), class = "factor"), V2 = structure(c(1L, 2L, 3L, 1L, 
2L, 3L), .Label = c("A", "B", "C"), class = "factor"), V3 = c(60, 
40, 60, 80, 20, 40)), .Names = c("V1", "V2", "V3"), row.names = c(NA, 
-6L), class = "data.frame")

r,ggplot2,

0

Ответов: 0

R - ggplot2 линии трассировки между «уложенными» точками

У меня возникают проблемы с тем, как я могу отслеживать линии (и, в конечном счете, стрелки) между двумя точками поверх других. Поэтому мой основной сюжет выглядит так:

 dt %>% 
  ggplot(aes(x = V2, y = V3, colour = V1) ) + geom_point(size = 3) + geom_point() +
  scale_colour_manual(values = c('gray44', 'black')) + 
  theme_minimal(base_size = 16) + geom_text(aes(x = V2, y = V3+1.05, label = V1)) 

введите описание изображения здесь

Поэтому я попытался создать «группы», чтобы отслеживать строку, но она не работает, и я хочу, чтобы точки, находящиеся на вершине друг друга, подключались:

dt = dt %>% group_by(V1) %>% mutate(grp = 1:n())

dt %>% 
  ggplot(aes(x = V2, y = V3, colour = V1) ) + geom_point(size = 3) + geom_point() +
  scale_colour_manual(values = c('gray44', 'black')) + 
  theme_minimal(base_size = 16) + geom_text(aes(x = V2, y = V3+1.05, label = V1)) +
  geom_path(data = dt, aes(V2, V3, group = grp))

В конце концов, я был бы очень интересно проследить стрелку , идущую от 1985к 1990, но я не могу понять

Я попытался добавить что-то вроде:

geom_segment(aes(x = V3[V1 == 1985], y = V3[V1 == 1985], xend = V3[V1 == 2000], yend = V3[V1 == 2000]), arrow = arrow(length = unit(0.5, "cm"))) 

но это не сработает.

Любая идея ?

введите описание изображения здесь

dt = structure(list(V1 = structure(c(1L, 2L, 1L, 2L, 1L, 2L), .Label = c("1985", 
"1990"), class = "factor"), V2 = structure(c(1L, 2L, 3L, 1L, 
2L, 3L), .Label = c("A", "B", "C"), class = "factor"), V3 = c(60, 
40, 60, 80, 20, 40)), .Names = c("V1", "V2", "V3"), row.names = c(NA, 
-6L), class = "data.frame")
00г, ggplot2,
Похожие вопросы