我试图创建一个图,其中geom_bar
表示一组数据点的平均值,单个数据点使用geom_jitter
显示。我希望条形图按因子着色,但单个数据点为白色。
这是我的剧本:
ggplot(dataframe,
aes(x = `glucose`, y = `CTV dilution factor`, fill = `cellobiose`))+
geom_bar(stat = "summary", position = "dodge")+
geom_jitter(position = position_jitterdodge(),
shape = 21, stroke=0.5, size=2.5, show.legend = FALSE)+
ylab("CTV dilution factor")+
xlab("glucose [mM]")+
facet_wrap(~condition, ncol=2)+
theme_manish()+
theme(text=element_text(size=16))
正如您所看到的,条和抖动点填充了相同的颜色。我想保留条上的颜色,但抖动点用白色填充。
有什么建议吗?谢谢!
1条答案
按热度按时间sqxo8psd1#
默认的实现方法是为
geom_jitter
或geom_point
设置fill="white"
,并使用group
aes,即在geom_point
中使用group=cellobiose
来通过cellobiose
来闪避点。然而,当这样做时,我遇到了一个错误,似乎是一个已知的,但仍然无法解决的issue。一个可能的解决方法是Map到
color
美学上,并使用scale_color_manual
将轮廓颜色设置为"black"
。使用基于
mtcars
的最小可再现示例: