如何在ggplot中更改不同数据集的线条颜色并具有图例

Posted

技术标签:

【中文标题】如何在ggplot中更改不同数据集的线条颜色并具有图例【英文标题】:How to change colors of lines of different datasets in ggplot and have a legend 【发布时间】:2021-12-21 10:17:15 【问题描述】:

我想在同一个图中用两个不同数据集的图例制作一个图

我第一次尝试这个:

df1 = data.frame(c11 = c(1:5), c12 = c(1:5))
df2 = data.frame(c21 = c(1:5), c22 = (c(1:5))^0.5)

ggplot() + geom_line(data=df1, aes(x=c11, y = c12), color= "red") + 
  geom_line(data=df2, aes(x=c21,y=c22), color = "blue") 

使用这个我得到了我想要的颜色,但没有图例

然后我尝试了这个:

ggplot() + geom_line(data=df1, aes(x=c11, y = c12, color= "DF1")) + 
  geom_line(data=df2, aes(x=c21,y=c22, color= "DF2")) 

使用这个我得到一个图例,但不是正确的颜色。然后我尝试使用 scale_color_manual() 但我不知道如何为 2 个不同的数据集形成参数

我知道有办法,但我似乎找不到 任何帮助都非常感谢

【问题讨论】:

你试过scale_colour_manual(values = c("red", "blue"))吗? 谢谢,我试过了,但由于某种原因,我得到了一个错误,但现在我复制了它工作的代码。也许我写错了什么。非常感谢 为了获得图例,您必须将 2 个数据集合并为一个,然后将颜色定义为变量。查看类似问题here 这能回答你的问题吗? multiple lines each based on a different dataframe in ggplot2 - automatic coloring and legend 将 data.frames 与相似的列组合起来更简洁,但并不是绝对必要的。 【参考方案1】:

scale_colour_manual(values = c("red", "blue"))

【讨论】:

以上是关于如何在ggplot中更改不同数据集的线条颜色并具有图例的主要内容,如果未能解决你的问题,请参考以下文章

如何根据列值更改线条的颜色

无法更改ggplot中线条的颜色

在 ggplot2 中创建具有不同数据集的图例

R语言ggplot2可视化箱图配置position_dodge参数避免数据点互相覆盖实现抖动数据点并使用线条(line)连接两个箱图中不同分组成对的数据点自定义配置箱图和数据点的颜色

为线条/形状组合正确显示 ggplot 图例

在 ggplot 中结合颜色和线型图例