首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gglot scale_fill_hue():比较类别较少的子组时,为相同的值保持相同的颜色

gglot scale_fill_hue():比较类别较少的子组时,为相同的值保持相同的颜色
EN

Stack Overflow用户
提问于 2021-08-19 18:31:27
回答 1查看 29关注 0票数 0

我希望比较两个条形图;一个代表整个人口,另一个是人口的一个子组。我非常喜欢scale_fill_hue()为此提供的颜色,但我遇到了一个问题。我用于填充的因子有6个级别: 20、50、100、200、500和N。在种群中,所有这6个级别都有表示,但在子组中,没有带"20“的个体。这导致scale_fill_hue()中的颜色发生了翻转。图的代码在底部。

population graph

sample graph

这意味着红色,在我的人口图中代表"20“,在我的子组图中代表"50”。这是令人困惑的,特别是对于并列比较。此外,样本中有20个观测值为零仍然是我想要包含的重要信息!

有没有办法让ggplot包含"20",即使没有观察到这个值呢?或者我需要手动创建我的调色板?有没有人有一个方向,我可以为之努力?

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-19 18:43:26

下面是一个使用mtcars数据集的可重现的示例。expand_limits通常用于y轴,但也可以用于其他美学。这里用来留出空间,以填补规模,任何汽车可能存在与20档。

代码语言:javascript
运行
复制
library(ggplot2)
ggplot(mtcars, aes(x = cyl, group = gear, fill = gear)) + 
  geom_bar() +
  expand_limits(fill = 20)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68852978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档