You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除ggplot2分组小提琴图中的多边形中央竖线

解决分裂小提琴图的中央竖线问题

你的问题根源很明确:没有在ggplot的美学映射中指定group = group,导致ggplot把两个分组的所有点当成同一个多边形来绘制,从而出现了连接两组的中央竖线。这是绘制分裂小提琴图时非常容易踩的坑,直接从美学层面修正就能完美解决,根本不需要用线段覆盖的折中方案。

修正后的核心代码

library(ggplot2)
ggplot(my_dat, aes(x = dens, y = y, fill = group, group = group)) + 
  geom_polygon(color = 'black', show.legend = FALSE)

为什么这个方法有效?

你的原始代码只指定了fill = group,但ggplot默认不会自动按fill拆分多边形——它会把所有点视为一个整体,所以a组最后一个点(y=10, x=0)会和b组第一个点(y=1, x=0)直接连接,形成那条多余的竖线。

加上group = group后,ggplot会明确识别每个分组是独立的多边形,分别渲染两组的密度轮廓,完全不会出现跨组的连线,精准解决了你的问题。

针对实际数据的补充建议

如果你用的是数百行的平滑数据,只要保证:

  • 每个分组的点按y值的升序/降序排列(确保多边形轮廓流畅)
  • 保留group = group的美学映射
    就能得到没有竖线的平滑分裂小提琴图,完全不需要后续的覆盖操作。

内容的提问来源于stack exchange,提问作者tjebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:48:21