R 将单个颜色指定给ggplot2中的渐变颜色方案
我试图找到在R中的ggplot2中显示此堆叠面积图的最佳方法。我的问题是在保持图表可读性的同时,我试图显示的变量数量。我现在有17个不同的变量,我需要保留在图表中,但有一些我特别想挑出。目前我的代码是:R 将单个颜色指定给ggplot2中的渐变颜色方案,r,ggplot2,R,Ggplot2,我试图找到在R中的ggplot2中显示此堆叠面积图的最佳方法。我的问题是在保持图表可读性的同时,我试图显示的变量数量。我现在有17个不同的变量,我需要保留在图表中,但有一些我特别想挑出。目前我的代码是: full <- ggplot(data=df, aes(x=Year, y=value) + geom_area(aes(fill=variable)) + theme(legend.position='right') + theme(legend.title=element_blank(
full <- ggplot(data=df, aes(x=Year, y=value) +
geom_area(aes(fill=variable)) +
theme(legend.position='right') +
theme(legend.title=element_blank())
如果有人知道如何做到这一点,我将不胜感激。或者,如果你能想出一个更好的方法来完全显示这些数据,我会乐于听取建议。因为你没有给出数据的示例,所以不可能给出详细的建议。但我可以用一个例子向你展示如何实现你的目标(如果我正确理解了你的目标…) 我首先创建som数据和绘图,如您的帖子所示:
df <- data.frame(Year=as.factor(rep(2000:2005,each=9)),
value=runif(6*9,0,10),
variable=as.factor(rep(1:9,times=6)))
full <- ggplot(data=df, aes(x=Year, y=value)) +
geom_area(aes(fill=variable,group=variable)) +
theme(legend.title=element_blank())
如您所见,可以使用命名颜色、十六进制代码或rgb
(实际返回十六进制代码)
您也可以使用ColorBrewer,它可以覆盖出色的调色板,而不是自己挑选颜色。与上面的gray.colors
类似,可以使用命令brewer.pal
创建调色板:
pal <- brewer.pal(9,"Set1")
my_scale <- gray.colors(n=9,start=0.2,end=0.8)
my_scale[c(4,7,8)] <- pal[1:3]
full + scale_fill_manual(values=my_scale)
pal如果您为df提供一个可重复性最低的数据集,您将得到更多的帮助。很抱歉没有包括这一点,对于社区来说还是很新的,而且一切都是如何工作的。谢谢很抱歉没有包含可复制的数据集(一般来说,ggplot和stackoverflow都是新的)。我应该考虑在外部创建一个调色板作为向量,然后重新分配它的特定元素。谢谢你的帮助!
my_scale <- gray.colors(n=9,start=0.2,end=0.8)
my_scale[c(4,7,8)] <- c("red", rgb(0,0.8,0.6), "#ff7f00")
full + scale_fill_manual(values=my_scale)
pal <- brewer.pal(9,"Set1")
my_scale <- gray.colors(n=9,start=0.2,end=0.8)
my_scale[c(4,7,8)] <- pal[1:3]
full + scale_fill_manual(values=my_scale)