У меня есть цикл для создания большого числа диаграмм путем фильтрации кадра данных PANDAS:
def makeChart(name):
plt.clf()
plt.cla()
filename = "plots/" + name.replace(" ","_")
series = df[df['name'] == name]
series_wk = series[['name','start_date','num_nights']].groupby([pd.Grouper(key='start_date', freq='W')]).sum().reset_index()
series_wk['period'] = series_wk.apply(checkperiod, axis=1)
series_wk.set_index('start_date',inplace=True)
series_wk.to_csv(filename + ".csv")
ne = series_wk[series_wk['period'] == "Non-election"]
e = series_wk[series_wk['period'] == "Election"]
fig, ax = plt.subplots(figsize=(15,7))
ax.bar(ne.index, ne['num_nights'], color='b')
ax.bar(e.index, e['num_nights'], color='r')
ax.xaxis.set_major_locator(ticker.MultipleLocator(50))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
ax.set_title(name)
plt.xticks(rotation=90)
fig.savefig(filename)
plt.show()
makeChart("CARR Kim")
Вывод plt.show () содержит правильные данные, и выглядит такthis Однако сохраненный файл содержит неверные данные, и выглядит так .Я новичок в использовании matplotlib, и действительно не могу понять, почему фактические точки данных здесь отличаются.Любая помощь будет принята с благодарностью!