首页 > 解决方案 > 如何在ggplot中创建蠕虫图(去趋势的QQ图)?

问题描述

QQ 图是一种有用的图形设备,用于检查残差的正态性等。QQ 图是通过将理论分位数放在 x 轴上并将观察到的分位数放在 y 轴上来构建的。在 ggplot 中,这可以使用 geom_qq 和 stat_qq 轻松完成。我想制作一个蠕虫图,它类似于 QQ 图,但在 y 轴上,它在理论分位数和观察到的分位数之间存在差异(见图)。

有没有办法在ggplot中做到这一点?例如,有没有一种简单的方法可以改变 geom_qq 的 y 轴以显示理论分位数和观察到的分位数之间的差异?我知道应该可以手动计算观察到的分位数,但是如果我想创建多个组的图或使用构面,这将无法正常工作,因为那时我还需要分别为每个组手动计算观察到的分位数。

在此处输入图像描述

标签: rggplot2

解决方案


评论中提到的博文包含编写自己的 statfunctions 以自己创建此类图的指南

否则,库 qqplotr https://aloy.github.io/qqplotr/index.html包含一个选项,该选项detrend=True基本上会生成带有置信带的蠕虫图。

如果你想要线条而不是乐队,那就做fill=NA, color='black', size=0.5


推荐阅读