我希望比较两个条形图;一个代表整个人口,另一个是人口的一个子组。我非常喜欢scale_fill_hue()为此提供的颜色,但我遇到了一个问题。我用于填充的因子有6个级别: 20、50、100、200、500和N。在种群中,所有这6个级别都有表示,但在子组中,没有带"20“的个体。这导致scale_fill_hue()中的颜色发生了翻转。图的代码在底部。
这意味着红色,在我的人口图中代表"20“,在我的子组图中代表"50”。这是令人困惑的,特别是对于并列比较。此外,样本中有20个观测值为零仍然是我想要包含的重要信息!
有没有办法让ggplot包含"20",即使没有观察到这个值呢?或者我需要手动创建我的调色板?有没有人有一个方向,我可以为之努力?
ggplot(avmim, aes(x = as.factor(sizeg), fill = killrank)) + geom_bar(position = "fill") + theme(axis.text.x = element_text(angle=90, hjust=1))+
labs(y="proportion", x="size group",fill="kill weight",title="Syrphid Size Group Kill Weight Proportions")+
scale_x_discrete(labels = c("XXS","XS","S","L","XL","XXL"))+
theme(axis.text.x = element_text(angle=0, hjust=0.5))+
scale_fill_discrete(name = "Kill Weight")
#scale_fill_discrete is leftover from when I was experimenting with ways to fix this
发布于 2021-08-19 18:43:26
下面是一个使用mtcars
数据集的可重现的示例。expand_limits
通常用于y
轴,但也可以用于其他美学。这里用来留出空间,以填补规模,任何汽车可能存在与20档。
library(ggplot2)
ggplot(mtcars, aes(x = cyl, group = gear, fill = gear)) +
geom_bar() +
expand_limits(fill = 20)
https://stackoverflow.com/questions/68852978
复制相似问题