R 在geom_line()中更改线条颜色后向混合ggplot添加图例

R 在geom_line()中更改线条颜色后向混合ggplot添加图例,r,ggplot2,legend,R,Ggplot2,Legend,在R中使用geom_line()命令时,我很难将图例添加回图形。以下是一些可复制的数据: df <- data.frame(Sample = c("Mesa-6X", "Mesa-6X-Cen", "Mesa-600X", "Mesa-6000X", "Mesa-6X", "Mesa-6X-Cen", "Mesa-600X", "Mesa-6000X"), CO2 = c("0.810", "0.630", "1.170", "0.882", "0.720", "0.377

在R中使用
geom_line()
命令时,我很难将图例添加回图形。以下是一些可复制的数据:

df <- data.frame(Sample = c("Mesa-6X", "Mesa-6X-Cen", "Mesa-600X", "Mesa-6000X", "Mesa-6X", "Mesa-6X-Cen", "Mesa-600X", "Mesa-6000X"), 
       CO2 = c("0.810", "0.630", "1.170", "0.882", "0.720", "0.377", "0.521", "0.444"), 
       Log = c(rep(1.68, 4), rep(2.2, 4)), 
       Colors = rep(c("tomato", "blue", "darkmagenta", "black"), 2))
我的代码: 这段代码添加了一个图例没有问题,但它拒绝使用df$Colors列为其着色,而是默认为其着色-这是一种彩虹类型的颜色。在这里,
geom_point()
起作用。很好。我要做的图形是这个图形,但是线条的颜色是正确的

ggplot(df, 
       aes(x = Log, 
           y = CO2, 
           color = df$Colors, 
           group = Sample)) + 
  geom_line(data = df, 
            aes(color = df$Sample), 
            size = 1.2) + 
  geom_point(color = "black", size = 1.2) 
顺便说一下:
class(df$Colors)
=系数


非常感谢您的见解和帮助

尝试使用
缩放颜色\u手册

color_palette <-
  c("Mesa-6X" = "tomato", "Mesa-6X-Cen" = "blue", "Mesa-600X" = "darkmagenta", "Mesa-6000X" = "black")

df %>% 
  ggplot(aes(x = Log, y = CO2, color = Sample, group = Sample), size = 1.2) + 
  geom_line() + 
  geom_point() +
  scale_color_manual(values = color_palette)
调色板%
ggplot(aes(x=对数,y=二氧化碳,颜色=样品,组=样品),大小=1.2)+
几何线()
几何点()+
缩放颜色手册(值=调色板)

FYI您不必在
aes中使用
df$
您通常不应该在aes中使用$,请参见
?缩放颜色标识
cardinal40:感谢您的回复;但是,该代码不起作用。它制作了一个图表,但所有的线条都是黑色的,没有任何图例。而且,
size=1.2
也不起作用。我甚至尝试了
scale\u color\u手册(values=df$Colors
),但都没有用。
color_palette <-
  c("Mesa-6X" = "tomato", "Mesa-6X-Cen" = "blue", "Mesa-600X" = "darkmagenta", "Mesa-6000X" = "black")

df %>% 
  ggplot(aes(x = Log, y = CO2, color = Sample, group = Sample), size = 1.2) + 
  geom_line() + 
  geom_point() +
  scale_color_manual(values = color_palette)