如何在ggplot2中为指定线条设置自定义颜色
解决方案
你可以通过给ggplot添加颜色映射,再手动指定颜色取值实现需求,修改后的完整代码如下:
library('reshape2') library('ggplot2') times <- seq(100, 1000, by=100) values <- data.frame(runif(10), runif(10), runif(10)) mean <- rowMeans(values) df <- data.frame(times, values, mean) names(df)=c("time", 1:3, 'means') melted = melt(df, id.vars = "time", value.name="values", variable.name="class") # 此处为修改部分 plot <- ggplot(data=melted, aes(x=time, y=values, group = class, color = class)) + geom_line() + # 手动指定每个class对应的线条颜色 scale_color_manual(values = c("1" = "gray", "2" = "gray", "3" = "gray", "means" = "red")) + labs(y= "Values", x = "Time") # 输出绘图结果 print(plot)
代码修改说明
- 在
aes()参数中新增color = class,将线条颜色和class变量绑定,支持按类别自定义颜色 - 新增
scale_color_manual()配置项,直接指定每个类别对应的颜色值,你也可以将gray替换为gray50、darkgray等不同深浅的灰色参数调整效果
如果不需要显示颜色图例,可以在scale_color_manual后添加+ theme(legend.position = "none")关闭图例。
内容的提问来源于stack exchange,提问作者Caluan
相关产品推荐
相关产品推荐

