Участки из разных пакетов бок о бок в Python - PullRequest
0 голосов
/ 08 апреля 2020

Я знаю, как создавать графики matplotlib бок о бок, используя plt.subplots () и переменную axes . Но я не могу найти, как это сделать, когда функции построения графиков приходят из разных python пакетов , скажем, seaborn и scipy.stats.

Может кто-нибудь помочь?

import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as stats
from scipy.stats import norm


train = [1,2,2,3,3,3,4,4,4,5,6]*2

#Distribution from seaborn
sns.distplot(train, fit=norm);
plt.ylabel('Frequency')

#QQ-plot plot from stats
plt.figure()
stats.probplot(train, plot=plt)
plt.show()

Это вывод кода (не рядом):

Output

Cheers,
Ricardo

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Из комментария - оба являются довольно тонкими обертками и много полагаются / пересылают на mpl

, что не идентично связанному вопросу;

import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as stats
from scipy.stats import norm

train = [1,2,2,3,3,3,4,4,4,5,6]*2

fig, ax = plt.subplots(1,2)
sns.distplot(train, fit=norm, ax=ax[0])
ax[0].set_ylabel('Frequency')
stats.probplot(train, plot=ax[1])
plt.show()
1 голос
/ 08 апреля 2020

Это сбивает с толку, потому что stats.probplot () использует другой синтаксис (plot= против ax= ...; см. Документы для sns.distplot и stats.probplot ), но это должно работать.

import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

train = [1,2,2,3,3,3,4,4,4,5,6]*2

fig, ax = plt.subplots(1,2)

#Distribution from seaborn
sns.distplot(train, ax=ax[0]);

#QQ-plot plot from stats
stats.probplot(train, plot=ax[1])

enter image description here

...