Соединение точек с geom_line в указанном порядке c - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь использовать ggplot для соединения точек по коэффициенту. Однако вместо этого траектория следует по оси x. Что мне делать, чтобы настроить это?

dput(TimeEff)
structure(list(Treat = c("N0", "N0", "N0", "N0+P", "N0+P", "N0+P", 
"N60", "N60", "N60", "N60+P", "N60+P", "N60+P", "N60+P+V", "N60+P+V", 
"N60+P+V", "N60+V", "N60+V", "N60+V"), Time = c("T157", "T217", 
"T7", "T157", "T217", "T7", "T157", "T217", "T7", "T157", "T217", 
"T7", "T157", "T217", "T7", "T157", "T217", "T7"), RS1 = c(-1.01597331415296, 
0.054728432606514, 1.23431053133827, -1.19280356432481, 1.61496198976957, 
0.636003270299734, -0.342528948667479, 0.194284721950614, 0.752617571838938, 
-0.0439584997550503, 0.369429998745985, -0.76081828888195, 1.12724878948647, 
-0.516440867545781, -1.70338001868143, 1.46801553741383, -1.7169642755269, 
-0.158733065913559), RS2 = c(1.75027373091837, -0.6927999472494, 
1.35360298097727, -1.63875683201727, 1.49686318476304, 0.472748817213433, 
0.324463226953492, -1.27828027422272, -1.38449342877724, -0.346570122181144, 
-0.587114634280834, -0.862512307254707, -0.14870885455771, -0.0765871299220654, 
0.983322157621319, 0.0592988508842657, 1.13791880091197, -0.56266821978008
)), class = "data.frame", row.names = c(NA, -18L))

Это функция ggplot:

TimeEff %>%
  mutate(Time = factor(Time, levels = c("T7", "T157", "T217"))) %>% 
  ggplot(aes(x = RS1, y = RS2, color = Treat))+
  geom_point(size=4)+
  geom_text(aes(label=Time),hjust=0, vjust=0)+
  geom_line(arrow = arrow(type = "closed"),size=1)

Я бы хотел, чтобы линия следовала в направлении T7 -> T157 -> T217 для каждого групп. Что мне следует изменить, чтобы решить эту проблему?

Результирующий график

1 Ответ

1 голос
/ 08 мая 2020

Это то, что вам нужно?

dplyr::arrange сортирует столбец по временной переменной в соответствии с установленным вами фактором, а затем ggplot::geom_path соединяет точки в порядке строк в df .

       TimeEff %>%
          mutate(Time = factor(Time, levels = c("T7", "T157", "T217"))) %>% 
          dplyr::arrange(Time) %>%
          ggplot(aes(x = RS1, y = RS2, color = Treat))+
          geom_point(size=4)+
          geom_text(aes(label=Time),hjust=0, vjust=0)+
          geom_path(arrow = arrow(type = "closed"),size=1)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...