R ggplot2 geom_线的两个不同图例

R ggplot2 geom_线的两个不同图例,r,ggplot2,legend,R,Ggplot2,Legend,我想创建一个时间序列,我可以在其中添加2个图例到绘图。两者都涉及几何线数据 我不知道如何制作第二个图例而不丢失两个图例中的颜色编码。 为了创建第二个图例,我使用了aes(fill),但这不适用于geom_line() 由于我有多个“other_data”列,只将其保留在同一个图例中是不行的。有没有办法生成第二个颜色图例?或者如果没有,有没有办法重新改变传说的范围?我已经看到了一些与该主题相关的问题/答案(比如改变因子水平),但无法让它们对我起作用 test2<-structure(list

我想创建一个时间序列,我可以在其中添加2个图例到绘图。两者都涉及几何线数据

我不知道如何制作第二个图例而不丢失两个图例中的颜色编码。 为了创建第二个图例,我使用了aes(fill),但这不适用于geom_line()

由于我有多个“other_data”列,只将其保留在同一个图例中是不行的。有没有办法生成第二个颜色图例?或者如果没有,有没有办法重新改变传说的范围?我已经看到了一些与该主题相关的问题/答案(比如改变因子水平),但无法让它们对我起作用

test2<-structure(list(years = 1997:2019, C_GST = c(-4.17580548007064, 
-3.09222451295899, -3.81473627184177, -3.86006814181853, -3.44761337632627, 
-4.33137213954075, -3.99481467427052, -4.67860991787106, -3.81108136976512, 
-2.74141090713935, -3.68934407438251, -4.11076769912514, -4.04671445949792, 
-2.15032596522459, -2.45715066933932, -2.44189233075241, -3.55792883020528, 
-3.85110566122781, -3.30431922214085, -2.8560678360313, -2.51873859956014, 
-4.10634101473384, -3.27696046637259), C_T1m = c(-4.95727614933516, 
-4.32259694834445, -4.37292658343919, -4.58082385100315, -4.33745424306488, 
-4.86012804392352, -4.72431314874494, -5.10814300904689, -4.77416614034652, 
-3.80115724403269, -4.25658945630866, -4.70270307212779, -4.72455672433521, 
-3.55976008896879, -3.36917817323156, -3.32223992491526, -4.12645917098195, 
-4.62634923771643, -4.21031109860841, -3.71252982450547, -3.55192389326146, 
-4.39008989099236, -4.24677580837391), C_T2m = c(-4.97224450466438, 
-4.58888176125316, -4.36955390625902, -4.67313492511159, -4.47018178252695, 
-4.84373051761506, -4.76878666828251, -5.06758621666582, -4.89644114993229, 
-4.08382252158516, -4.29726986542675, -4.72793238335654, -4.76421709959542, 
-3.88501639178557, -3.55444156650311, -3.53911074415242, -4.11014209084617, 
-4.64427711114094, -4.33303207277665, -3.93464317807564, -3.73412160239998, 
-4.29090100987888, -4.38945036072465), other_data = c(NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, 5.16122716, -3.53491172, -4.25958996, 
-3.18504176, -3.51510776, -3.10949332, -3.58185444, -3.78722884, 
-3.39848444, -3.62292932, -3.64126632, -4.69234316, 3.2857188
)), row.names = c(NA, -23L), class = "data.frame")

test2 %>%
  ggplot() +
  geom_line(aes(x = years, y = C_GST,      color = C_GST), size = 1.0, alpha = 0.95, show.legend = T) +
  geom_line(aes(x = years, y = C_T1m,      color = C_T1m), size = 1.0, alpha = 0.95, show.legend = T) +
  geom_line(aes(x = years, y = C_T2m,      color = C_T2m), size = 1.0, alpha = 0.95, show.legend = T) +
  geom_line(aes(x = years, y = other_data, fill = "Other_Data"), size = 1.1, alpha = 0.95, show.legend = T) +

  labs(title = "Placeholder Title",
       subtitle = "",
       x = "Years",
       y = "Temp [°C]",
       color = "Depth",
       fill = "Depth2")+
  theme_calc() +                                      
  scale_color_brewer(palette = "Set1") 
test2%
ggplot()+
geom_线(aes(x=年,y=C_GST,颜色=C_GST),尺寸=1.0,α=0.95,显示图例=T)+
几何线(aes(x=年,y=立方米,颜色=立方米),尺寸=1.0,α=0.95,显示图例=T)+
几何线(aes(x=years,y=C_T2m,color=C_T2m),尺寸=1.0,α=0.95,show.legend=T)+
geom_线(aes(x=年,y=其他_数据,fill=“其他_数据”),尺寸=1.1,α=0.95,show.legend=T)+
实验室(title=“占位符标题”,
副标题=”,
x=“年”,
y=“温度[°C]”,
color=“Depth”,
fill=“Depth2”)+
主题计算()
比例、颜色、制浆机(调色板=“设置1”)

带有ggnewscale软件包:

library(ggplot2)
library(ggnewscale)
ggplot(test2) +
  geom_line(aes(x = years, y = C_GST,      color = C_GST), size = 1.0, alpha = 0.95, show.legend = T) +
  geom_line(aes(x = years, y = C_T1m,      color = C_T1m), size = 1.0, alpha = 0.95, show.legend = T) +
  geom_line(aes(x = years, y = C_T2m,      color = C_T2m), size = 1.0, alpha = 0.95, show.legend = T) +
  new_scale_color() +
  geom_line(aes(x = years, y = other_data, color = "Other_Data"), size = 1.1, alpha = 0.95, show.legend = T) 

这几乎解决了问题。但是我还是不能给第二个添加调色板legend@D.J请参见ggnewscale文档中的示例。您可以添加一个
比例\u颜色\u XXX
。我添加了,我不得不承认这并没有真正的帮助。我现在几乎通过尝试和错误处理了所有问题,但其中一个图例拒绝显示正确的线型。