gpt4 book ai didi

r - 如何在ggplot中手动设置geom_bar填充颜色

转载 作者:行者123 更新时间:2023-12-04 13:40:24 36 4
gpt4 key购买 nike

我正在尝试使用 ggplot 创建多个图形。这些图形是一系列条形图,它们一起也描述了一条线 EXAMPLE (顺便说一句,是的,我意识到调色板很难看,它对色盲友好,这对我的观众很重要)

我的问题是我需要制作几个这样的图表,并且我希望所有这些图表的颜色保持一致。由于“类型”变量在我将要使用的多个数据集中以不同的顺序出现,因此我需要为每种类型手动设置颜色。我以为这个问题:How to manually fill colors in a ggplot2 histogram会有答案,但是当我尝试这样做时,它会将图例中的名称更改为颜色的十六进制定义,但颜色本身会返回到 ggplot 的默认调色板。

这是我到目前为止的代码:

  cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")

ggplot()+
scale_fill_manual(values=cbbPalette)+
geom_bar(data=subset(eten, Type=="Waste Wood"), aes(x=Tprod, y=acost, fill=cbbPalette[1], width=MGGEY+25), stat="identity")+
geom_bar(data=subset(eten, Type=="Agricultural Residue"), aes(x=Tprod, y=acost, fill=cbbPalette[2], width=MGGEY+25), stat="identity")+
geom_bar(data=subset(eten, Type=="Forest Residue"), aes(x=Tprod, y=acost, fill=cbbPalette[3], width=MGGEY+25), stat="identity")+
geom_bar(data=subset(eten, Type=="Herbaceous Energy Crop"), aes(x=Tprod, y=acost, fill=cbbPalette[4], width=MGGEY+25), stat="identity")+
geom_bar(data=subset(eten, Type=="MSW"), aes(x=Tprod, y=acost, fill=cbbPalette[5], width=MGGEY+25), stat="identity")+
scale_y_continuous("Average Cost", labels = dollar, expand=c(0,0))+
scale_x_continuous("Million Gallons of Gasoline Equivalent", expand=c(0,0))+
theme(legend.position="bottom", panel.background=element_rect(colour = NA, fill = "white"), axis.line=element_line(), panel.grid.major.y=element_line(colour="black"), panel.grid.minor=element_blank())

我的 R 专业知识水平相当低,所以我可能会遗漏一些简单的东西,但我不能让它自己工作。在此先感谢您的帮助。

更新:我无意中粘贴了错误版本的代码,“填充”命令又回到了我的最佳猜测。示例数据集是 here .

最佳答案

我猜你已经看过 ggplot 色盲示例 here ?如果没有您的数据,我只能推测您的 geom_bar 调用会在将填充更改应用于哪个图层方面产生歧义,因为您对 ggplot 的初始调用没有 aes 参数。尝试将所有数据移动到单个数据帧中,并在对 ggplot 的初始调用中引用它,例如,

ggplot(df, aes(x=cond, y=yval)) +
geom_bar() +
scale_fill_manual(values=cbbPalette)

其中 df 是包含您的数据的数据框,而 aes 是您的变量之间的映射。这使 ggplot 清楚地表明您希望 geom_bar 的填充颜色与 df 中的数据相对应。有多种方法可以使用您当前的代码进行此操作,但它们对于创建标准条形图来说是非常规的。

关于r - 如何在ggplot中手动设置geom_bar填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18229835/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com