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