使用 Seaborn 和 SciPy 的分位数-分位数图

新手上路,请多包涵

谁能给我一种在 Seaborn 中 绘制 qq 图 作为数据正态性测试的方法?或者失败了,至少在 matplotlib 中是这样。

提前致谢

原文由 Harvs 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
1 个回答

阅读维基百科文章后,我了解到 QQ 图是两个分布的分位数相互对比的图。

numpy.percentile 允许获得分布的百分位数。因此,您可以在每个分布上调用 numpy.percentile 并将结果相互绘制。

 import numpy as np
import matplotlib.pyplot as plt

a = np.random.normal(5,5,250)
b = np.random.rayleigh(5,250)

percs = np.linspace(0,100,21)
qn_a = np.percentile(a, percs)
qn_b = np.percentile(b, percs)

plt.plot(qn_a,qn_b, ls="", marker="o")

x = np.linspace(np.min((qn_a.min(),qn_b.min())), np.max((qn_a.max(),qn_b.max())))
plt.plot(x,x, color="k", ls="--")

plt.show()

在此处输入图像描述

原文由 ImportanceOfBeingErnest 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进