如何根据列值更改线条的颜色
Posted
技术标签:
【中文标题】如何根据列值更改线条的颜色【英文标题】:How to change color of lines depending on column value 【发布时间】:2021-12-26 19:34:31 【问题描述】:我正在尝试使用 ggplot 从数据框中绘制关于仅来自欧洲和美洲的国家的历史预期寿命的图表。我的想法是让所有欧洲国家的线条都是蓝色的,美洲的线条是红色的。
这是我的代码:
ggplot(AmericasEuropeData, aes(x = year, y = lifeExp, group = country, color = country)) +
geom_line(lwd = 1, show.legend = FALSE) +
scale_color_manual(values = country_colors) +
theme_bw() + theme(strip.text = element_text(size = rel(1.1))) +
ggtitle("Americas + Europe") +
geom_vline(xintercept=2020, linetype="dashed") +
ylab("Life Expectancy") +
xlab("Year")
显示以下图表:
我尝试将color = country
更改为color = continent
,但它使所有线条变成灰色,而不是每个大陆的不同颜色。
我该如何解决这个问题?我知道我可能搞砸了一些非常简单的事情。
AmericasEuropeData
数据框预览
【问题讨论】:
当您删除scale_color_manual(values = country_colors) +
行时,group = country, color = continent
会发生什么情况?
发送dput(AmericasEuropeData)
并在此处发布结果,以便我重现您的结果。
@AllanCameron 谢谢伙计,我认为它成功了!我删除了scale_color_manual(values = country_colors)
并更改了color = continent
【参考方案1】:
正如@AllanCameron 所说,将color = country
更改为color = continent
并删除scale_color_manual(values = country_colors)
,效果非常好。
这就是现在的样子:
【讨论】:
以上是关于如何根据列值更改线条的颜色的主要内容,如果未能解决你的问题,请参考以下文章