Matplotlib открывает 2 окна с plt.show () - PullRequest
0 голосов
/ 27 декабря 2018

В моем проекте я использую 2 цифры с помощью plt.show (), первая работает правильно, а вторая создает 2 окна, 1 с правильным названием «Рисунок 2» и 1, на котором ничего нетэкран, просто «функциональная панель» с именем «Рисунок 1» (как на первом рисунке).Как я могу создать только правильное окно?

x = pd.DataFrame(maindf[missao_unica].value_counts())
plt.figure(figsize=(20,12), dpi=200)
plt.subplots_adjust(wspace = .5)
plt.subplot(1,3,1)
plt.pie(x[missao_unica].tolist(), labels=x.index.tolist(),autopct='%1.1f%%',shadow=False, startangle=90)
plt.title('Contagem(%)')
plt.subplot(1,3,2)
sns.heatmap(x,cmap='inferno_r')
plt.title('Contagem(Valor Absoluto)')
plt.subplot(1,3,3)
plt.title('Coeficientes')
sns.countplot(maindf[missao_unica],dodge=None)
plt.savefig('Imagens\Missões.png')
plt.show()

1 Ответ

0 голосов
/ 27 декабря 2018

Этого можно избежать, если использовать объекты matplotlib напрямую, а не полагаться на конечный автомат pyplot.В качестве дополнительного бонуса у вас будет более четкий и понятный код.

Главное здесь - использовать plt.subplots() для предварительной настройки всех ваших фигур и осей, а затем явно работать с этимиобъекты и передать их непосредственно функциям морского побережья, которые вы хотите использовать.

x = pd.DataFrame(maindf[missao_unica].value_counts())
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(20, 12), dpi=200)
fig.subplots_adjust(wspace=0.5)
axes[0].pie(x[missao_unica].tolist(), labels=x.index.tolist(),
            autopct='%1.1f%%', shadow=False, startangle=90)
axes[0].set_title('Contagem(%)')

sns.heatmap(x, cmap='inferno_r', ax=axes[1])
axes[1].set_title('Contagem(Valor Absoluto)')

axes[2].set_title('Coeficientes')
sns.countplot(maindf[missao_unica], dodge=None, ax=axes[2])

# note the use raw strings for paths with back-slashes
fig.savefig(r'Imagens\Missões.png')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...