如何用ggplot绘制单组小提琴图?解决stat_ydensity缺失y美学问题
解决单组小提琴图绘制问题
问题原因
geom_violin()依赖的stat_ydensity()必须要有y美学映射,哪怕是单组数据也不能省略——这和仅需x就能绘制的单组箱线图逻辑不同。
解决方案
给y指定一个固定值,将所有数据映射到同一个y轴位置,再按需调整y轴显示效果:
方案1:隐藏y轴元素(简洁版)
ggplot(data, aes(x = my_continuous_var, y = 1)) + geom_violin() + theme( axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank() )
方案2:保留分组标识(带标签版)
如果需要明确显示这是单组数据,可以给y设置一个类别名称:
ggplot(data, aes(x = my_continuous_var, y = "单组样本")) + geom_violin() + ylab("分组") # 可自定义y轴标题
内容的提问来源于stack exchange,提问作者Kaikus
相关产品推荐
相关产品推荐

