Легенда ggplot не появляется - PullRequest
0 голосов
/ 06 января 2020

Мой код для сюжета следующий:


ggplot(NULL, aes(V2, V1)) + 
  geom_line(data = df1, colour = "blue") +
  geom_line(data = df2, colour = "green") +
  geom_line(data = df3, colour = "purple") +
  theme(
    legend.position = "bottom") +

df1, df2 и df3 имеют одинаковую структуру

V2 V1
1  1.4
2  1.5
3  1.9
4  4.5
5  6.7
6  7.8
7  8.1
8  8.2
9  8.3
10 8.9

В выходных данных не отображается легенда, но я Нужно различать линии на участке.

I add the picture of the plot output I receive. Мне нужно просто иметь легенду здесь.

1 Ответ

3 голосов
/ 06 января 2020

Может быть, будет полезно, если вы поместите данные в один фрейм данных, а затем нанесите данные на график с одним geom_line вместо нескольких.

library(ggplot2)

dplyr::bind_rows(df1 = df1, df2 = df2, df3 = df3, .id = "id") %>%
  ggplot() +  aes(V2, V1, color = id) + 
  geom_line() + 
  theme(legend.position = "bottom")

enter image description here

данные

df1 <- structure(list(V2 = 1:10, V1 = c(1.4, 1.5, 1.9, 4.5, 6.7, 7.8, 
8.1, 8.2, 8.3, 8.9)), class = "data.frame", row.names = c(NA, -10L))

df2 <- structure(list(V2 = 1:10, V1 = c(1.43390152077191, 2.30610947613604, 
2.23775280718692, 5.41628585802391, 7.05710641788319, 8.77536501311697, 
8.48437852263451, 8.68867353517562, 8.7907762312796, 8.91225462416187
)), row.names = c(NA, -10L), class = "data.frame")

df3 <- structure(list(V2 = 1:10, V1 = c(2.04147320063785, 2.01257497165352, 
2.22035211822949, 5.08143315766938, 7.31734440829605, 8.23827453767881, 
8.27036898061633, 8.91508049662225, 9.04778654868715, 9.74391470812261
)), row.names = c(NA, -10L), class = "data.frame")
...