可以,然后呢stats.probplot
让我有点困惑。该文档明确指出:
probplot
生成概率图,不应将其与
Q-Q 或 P-P 图。
然而我能找到的所有资料都表明概率图指的是 Q-Q 图或 P-P 图。去搞清楚。
无论如何,就我而言,你所生成的isQ-Q 图。
在我看来,这个选项fit=False
of stats.probplot
被忽略,并且始终将回归线添加到数据中。
不管怎样,为了得到你想要的,我们可以显式创建一个 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')
这给了我以下内容,我认为这一次确实是您想要的: