我有这个情节:
ggplot(data3, aes(year, NY.GDP.MKTP.KD.ZG, color = country)) + geom_line() +
xlab('Year') + ylab('GDP per capita')
labs(title = "Annual GDP Growth rate (%)") +
theme_bw()
现在我想仅为一个变量更改颜色和线条粗细(黑色,厚度比其他厚度大约30%)(仅限一个国家/地区)。
我已经找到了如何为所有变量手动分配颜色,但不知道如何仅为一个变量分配颜色。此外,图表可以有不同数量的变量(国家/地区),具体取决于输入数据。
答案 0 :(得分:7)
如果没有一些可重复的数据,有点困难,但您应该能够通过添加仅使用该特定国家/地区的数据的geom_line()
来实现此目标:
ggplot(data3, aes(year, NY.GDP.MKTP.KD.ZG, color = country)) + geom_line() +
xlab('Year') + ylab('GDP per capita') +
labs(title = "Annual GDP Growth rate (%)") +
theme_bw() +
geom_line(data=subset(data3, country == "China"), colour="black", size=1.5)
使图例与颜色和大小保持一致有点棘手 - 你可以通过override.aes
手动黑客攻击传奇,但它不一定是最优雅的解决方案:
# Needed to access hue_pal(), which is where ggplot's
# default colours come from
library(scales)
ggplot(data3, aes(year, NY.GDP.MKTP.KD.ZG, color = country)) + geom_line() +
xlab('Year') + ylab('GDP per capita') +
labs(title = "Annual GDP Growth rate (%)") +
theme_bw() +
geom_line(data=subset(data3, country == "World"), colour="black", size=1.5) +
guides(colour=guide_legend(override.aes=list(
colour=c(hue_pal()(11)[1:10], "black"), size=c(rep(1, 10), 1.5))))