gpt4 book ai didi

Python:多个 QQ-Plot

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:54 28 4
gpt4 key购买 nike

我是新手,通常来自 R。我想创建一个包含多条线的 QQ-Plot。

我有一个 beta 分布式数据集我想为 beta 分布尝试不同的参数,并在 one QQ-Plot 中比较它们以获得更好的比较。如果我尝试下面的代码,每个图都有相同的颜色,我得到了 3 条 QQ 线。有没有可能把这三个QQ图合二为一?
我希望你能解决我的问题

import scipy.stats as stats
import numpy
x=numpy.random.beta(2, 3, size=100)
stats.probplot(x, dist=stats.beta, sparams=(2,3),plot=plt,fit=False)
stats.probplot(x, dist=stats.beta, sparams=(1,2),plot=plt,fit=False)
stats.probplot(x, dist=stats.beta, sparams=(1,4),plot=plt,fit=False)

亲切的祝贺

最佳答案

好吧,stats.probplot 让我有点困惑。文档明确指出:

probplot generates a probability plot, which should not be confused with a Q-Q or a P-P plot.

然而,我能找到的所有资料都表明概率图指的是 Q-Q 图或 P-P 图。去图吧。

无论如何,就我而言,您生成的 Q-Q 图。

在我看来,stats.probplot 的选项 fit=False 也被忽略了,回归线总是添加到数据中。

无论如何,为了得到你想要的,我们可以显式地创建一个 matplotlib 坐标轴实例,并使用 get_lines 方法删除不需要的回归线并更改标记颜色。

import scipy.stats as stats
import numpy as np
import matplotlib.pyplot as plt

plt.style.use('seaborn')

x = numpy.random.beta(2, 3, size=100)

fig, ax = plt.subplots(1, 1, figsize=(6, 4))
stats.probplot(x, dist=stats.beta, sparams=(2,3), plot=plt, fit=False)
stats.probplot(x, dist=stats.beta, sparams=(1,2), plot=plt, fit=False)
stats.probplot(x, dist=stats.beta, sparams=(1,4), plot=plt, fit=False)

# Remove the regression lines
ax.get_lines()[1].remove()
ax.get_lines()[2].remove()
ax.get_lines()[3].remove()

# Change colour of scatter
ax.get_lines()[0].set_markerfacecolor('C0')
ax.get_lines()[1].set_markerfacecolor('C1')
ax.get_lines()[2].set_markerfacecolor('C2')

# Add on y=x line
ax.plot([0, 1], [0, 1], c='C3')

这给了我以下内容,我认为这一次确实是您想要的:

enter image description here

关于Python:多个 QQ-Plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55142882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com