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



我在 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))

关于图例未出现的这个问题,有多个帖子,例如:将图例添加到 r 中的 geom_line(( 图中,ggplot2 图例未出现的原因以及其他一些原因; 但是,这里的建议或我搜索过的其他教程似乎都不适用于我的代码。

我的目标是:将线条的颜色更改为 df$颜色,同时显示显示与 df$Sample 列对应的颜色的图例。

我的代码: 此代码可以正常着色,但缺少图例,geom_point()消失。

ggplot() + 
geom_line(data = df, 
aes(x = Log, y = CO2), 
size = 1.2, 
color = df$Colors, 
group = df$Sample) +
geom_point(color = "black", 
size = 1.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)= 因子

非常感谢您的见解和帮助。

尝试使用scale_color_manual

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)

最新更新