如何在R/Python中绘制旁侧附带PDF的组合箱线图?

上图是Origin生成的箱线图+PDF(概率密度函数)曲线组合可视化效果,R和Python都有成熟的工具包可以实现,甚至自定义灵活度比Origin更高:
Python 实现方案
- 核心用
matplotlib做画布和坐标轴对齐,搭配seaborn封装好的统计绘图函数就能快速实现:如果是要做同坐标系叠加效果,直接在同一个axes上先后调用箱线图、核密度估计(即PDF曲线)绘图接口就行;如果要做示例里的上下分栏排布,用matplotlib.gridspec划分画布区域,给两个子图设置共享x轴,分别绘制箱线图和PDF曲线即可,不需要手动调整坐标对齐。 - 习惯图层语法的话可以用
plotnine,语法逻辑和R的ggplot2完全一致,拼图层、组合子图的逻辑更顺畅,代码可读性更高。
R 实现方案
- 最常用的是
ggplot2+patchwork组合:ggplot2本身的图层逻辑支持任意图形叠加,单独画箱线图用geom_boxplot()、画PDF曲线用geom_density(),要做分栏组合的话用patchwork把两个独立绘制的、共享x轴的图拼在一起,自动对齐刻度,几行代码就能出效果。 - 专门做统计分布可视化的
ggdist包还提供了现成的箱线+密度组合几何对象,不用手动拼子图,调整参数就可以直接输出和示例风格一致的图表,自定义空间很大。
这类组合图本质就是两个基础统计图形做坐标轴对齐拼接,两个环境的工具链都很成熟,不需要从零开始写绘图逻辑,还支持批量出图、自定义样式,适配不同的出版级绘图需求。
内容的提问来源于stack exchange,提问作者lemmingxuan
相关产品推荐
相关产品推荐

