在geom_violin
内拨打ggplot2
时,您可以指定每个小提琴的面积应与构成该小提琴的观察数量成比例,方法是指定scale="count"
。
我认为这是通过取一些总面积(让我们称之为X量)并在所有要绘制的小提琴中按比例分配来在内部进行的。这就是我想要的,除非这会导致相当窄的小提琴,如果组之间的N有足够的差异,使得某些组具有相对较低的N.在我的情况下,这只会使填充颜色很难看到。
我认为这可以在很大程度上解决,至少在我的情况下,通过简单地扩展X一点点,以便真正小的小提琴获得足够的区域仍然可读。换句话说,我希望根据观察的数量保留小提琴之间的面积变化,但是增加在小提琴中划分的总面积的“池”,这样每个人都会略微变大。
任何人都知道如何才能实现这一目标?必须要为此进行切换。我已经尝试过geom_violin
width
,size
,violinwidth
这样的争论,但到目前为止还没有运气......
编辑:一个可以尝试的无聊但可重复的“样本”数据集的代码。
y = runif(100, 1, 10)
x = as.factor(rep(c(1,2), times=50))
z = as.factor(c(rep(1, 10), rep(2, 90)))
df=data.frame(x, y, z)
ggplot(df, aes(x=x, y=y, fill=z)) + geom_violin(scale="count")
答案 0 :(得分:1)