我试图给同样是分面的分组条形图赋予相同颜色的不同阴影。
下面是我已经拥有的代码和输出:
temp.data = data.frame (Species = rep(c("A","B"),each=2, times=2),
Status = rep(c("An","Bac"), times=4),
Sex = rep(c("Male","Female"), each=4, times=1),
Proportion = c(6.86, 7.65, 30.13, 35.71, 7.13, 10.33, 29.24, 31.09))
ggplot(temp.data, aes(x = Species, y = Proportion, fill = Status, alpha = Species)) +
geom_bar(stat='identity', position = position_dodge(width = 0.73), width=.67) +
facet_grid(Sex ~ .) + xlab("X title") +
ylab("Y title") +
scale_fill_manual(name = "Status", labels = c("An","Bac"),
values = c("#86a681","#0a3e03")) +
scale_alpha_manual(values = c(0.6, 1)) +
theme_light() + theme(legend.title= element_text(size = 8),
legend.title.align=0.5,
legend.position = c(),
legend.background=element_blank(),
legend.text=element_text(size=7),
legend.key.size = unit(0.6, 'cm'),
axis.title.x = element_text(size = 9),
axis.title.y = element_text(size = 9),
axis.title.y.right = element_text("Sex of groups"),
strip.background = element_rect(
color="lightgrey", fill="white", size=0.5, linetype="solid"),
strip.text.y = element_text(color = "darkgrey", face = "bold"))
然而,我在这里找不到一个答案,为不同的条形组给予不同的颜色。我最终想出了scale_alpha_manual()
函数,但它不能手动提供颜色,它应该是定义的“填充”的alpha刻度。因此,这个问题也不是重复的问题。
下面是所需的输出应该是什么样子(最好是带有图例):
先谢谢你。
2条答案
按热度按时间pb3skfrl1#
您可以使用
ggnewscale
包。下面,我分别为物种A和B制作了数据的子集。然后,我用一组颜色制作了物种A的条形图,然后调用new_scale_fill()
来初始化一个新的填充比例。然后,我用不同的颜色制作了物种B的条形图。两个条形图都有一组相关的颜色和一个可以用scale_fill_manual()
设置的图例。创建于2023-04-26带有reprex v2.0.2
vlf7wbxs2#
我们可以根据一列设置颜色,然后根据另一列添加阴影: