#r #ggplot2 #legend
#r #ggplot2 #легенда
Вопрос:
Привет всем, я представляю 2 переменные (текущие и кумулятивные) сгруппированного набора данных на одном графике. Набор данных выглядит следующим образом:
> structure(Dt)
Group Year Temperature Cum_Temp
1 H1 2012 11.4487927 11.448793
2 H1 2013 4.5795171 15.903414
3 H1 2014 8.9508743 22.772689
...
10 H2 2012 6.8571429 6.857143
11 H2 2013 1.1428571 8.000000
12 H2 2014 3.4285714 9.714286
...
19 UTC 2012 5.9163059 5.916306
20 UTC 2013 6.3492063 9.956710
21 UTC 2014 16.3059163 19.769120
...
Я создал цветовой вектор:
plt_col<-rep(c("Blue","Yellow","Red"),each=9)
и я создал график:
ggplot(Dt, aes(x=Year))
geom_line(aes(y=Temperature, group=Group),linetype = "solid", color = plt_col, size=1.5)
geom_point(aes(y=Temperature, group=Group),shape = 16, color = plt_col, size=3)
geom_line(aes(y=Cum_Temp, group=Group),linetype = "longdash", color = plt_col, size=0.8)
geom_point(aes(y=Cum_Temp, group=Group),shape = 16, color = plt_col, size=3)
Мне нужно показать легенду как сплошными, так и пунктирными линиями, но со многими geom_x я не могу.
У вас есть какие-либо предложения?
Спасибо
Ответ №1:
Вы собираетесь строить это неправильно. Попробуйте:
library(dplyr)
library(tidyr)
library(ggplot2)
pivot_longer(Dt, 3:4) %>%
ggplot(aes(x = Year, y = value, colour = Group))
geom_line(aes(linetype = name, size = name))
geom_point(shape = 16, size = 3)
scale_color_manual(values = c("blue", "yellow", "red"))
scale_linetype_manual(values = c("longdash", "solid"), name = "")
scale_size_manual(values = c(0.8, 1.5), name = "")