Хорошо, поэтому stats.probplot
оставил меня немного смущенным.В документации четко указано, что:
probplot
генерирует график вероятности, который не следует путать с QQ или графиком PP.
Все же все источники Iможет найти состояние, что график вероятности относится либо к графику QQ, либо к графику PP.Иди к черту.
В любом случае, насколько я понимаю, то, что ты сгенерировал , является графиком QQ.
Мне также кажется, что опция fit=False
из 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')
Это дало мне следующее, что, на мой взгляд, действительно на этот разВы хотели: