我使用以下
创建了一个由三层(小提琴,盒子和贝壳曲线)组成的图形library(ggplot2)
library(ggbeeswarm)
df <- data.frame(var1 = sample(c("Condition A", "Condition B"), 50, replace =T),
var2 = sample(c("Group 1", "Group 2"), 50, replace =T),
value = sample(c(1,2,3,4,5,6,7,8,9,10), 50, replace =T))
ggplot(df, aes(x=var1, y=value, fill = var2, group = interaction(var1,var2))) +
geom_violin(position = position_dodge(0.8)) +
geom_boxplot(position = position_dodge(0.8), width = .6, outlier.shape = NA) +
# from ggbeeswarm
geom_quasirandom(method = "pseudorandom", dodge.width=0.8, size = 3, alpha = 0.6) +
scale_fill_manual(values=alpha(c("#848484","#0F185B"), .3)) +
scale_color_manual(values=c("#848484","#0F185B")) +
theme_bw() +
theme(text = element_text(size=15))
情节看起来 like this. 然而,我希望小提琴在箱形图下方是简单的阴影区域,即具有透明填充,但没有轮廓,因此盒子和小提琴的线条不会发生冲突,图形更容易看到。
我的问题是,我不知道如何在此特定图层(color
)中将geom_violin()
的alpha设置为仅 ,同时保持轮廓其他层可见。 scale_color_manual
同等地影响所有geom
图层,因此如果我将alpha设置为零,则框和点会丢失其轮廓,这是我不想要的。 geom_violin
确实有一个alpha
参数,但这只会影响fill
颜色的透明度,因此也不会解决问题。
This is what I want to achieve*.(*请注意,我使用Inkscape手动删除了大纲。)
一般情况下,我想知道是否可以为同一图表的不同图层设置fill
和color
的不同Alpha值。