Seaborn plt.savefigure «перезапись изображений» - PullRequest
0 голосов
/ 22 декабря 2018

Проблема

Я пытаюсь сохранить графики с помощью seaborn и matplotlib plt.savefig ('. Png'), но происходит то, что графики перезаписываются, даже если имя другое.Я не могу использовать

fig = sns.lineplot(data=totaldf, palette="tab10", linewidth=2.5) fig.savefig('.png')

, потому что он возвращает:

AttributeError: объект 'AxesSubplot' не имеет атрибута 'savefig'

Как я могу сохранить эти графики без перезаписи?

Код

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

maindf = pd.read_csv('df2.csv')
maindf['M01']=(maindf['M01'].apply(lambda x: x * 27))
maindf['M02']=(maindf['M02'].apply(lambda x: x * 27))
maindf['M03']=(maindf['M03'].apply(lambda x: x * 27))
maindf['M04']=(maindf['M04'].apply(lambda x: x * 27))
maindf['M05']=(maindf['M05'].apply(lambda x: x * 27))
maindf['M06']=(maindf['M06'].apply(lambda x: x * 27))
maindf['M07']=(maindf['M07'].apply(lambda x: x * 27))
maindf['M08']=(maindf['M08'].apply(lambda x: x * 27))
maindf['M09']=(maindf['M09'].apply(lambda x: x * 27))
maindf['M10']=(maindf['M10'].apply(lambda x: x * 27))
maindf['M11']=(maindf['M11'].apply(lambda x: x * 27))
maindf['M12']=(maindf['M12'].apply(lambda x: x * 27))
maindf['M13']=(maindf['M13'].apply(lambda x: x * 27))
maindf['M14']=(maindf['M14'].apply(lambda x: x * 27))
maindf['M15']=(maindf['M15'].apply(lambda x: x * 27))
index=0
totaldf = pd.DataFrame({ 'Pontuacao Total':maindf.sum(axis=1)})
sns.countplot(totaldf['Pontuacao Total'])
plt.savefig("PontuacaoTotalDistPlot.png")
sns.heatmap(totaldf,cmap = 'inferno_r')
plt.savefig('PontuacaoTotalHeatmap.png')
sns.lineplot(data=totaldf, palette="tab10", linewidth=2.5)
plt.savefig('PontuacaoTotalLine.png')

Изображения

Это линейный участок

That's the line plot

Тепловая карта

That's the heatmap

1 Ответ

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

Вы можете создать новую фигуру для каждого графика,

plt.figure()
sns.countplot(...)
plt.savefig(...)

plt.figure()
sns.lineplot(...)
plt.savefig(...)

Вы также можете сохранить любую конкретную фигуру,

fig1 = plt.figure()
sns.countplot(...)

fig2 = plt.figure()
sns.lineplot(...)

fig1.savefig(...)
fig2.savefig(...)
...