savefig возвращает пустое изображение - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь построить фрейм данных pandas (result_m) с помощью функции построения pandas, но когда я пытаюсь сохранить рисунок с помощью savefig, он возвращает пустой PDF-файл. Он отлично отображается в окне записной книжки. Не уверен, что делаю не так

fig = plt.figure()

ax = result_m.plot( kind='line',  figsize=(20, 10),fontsize=15)
ax.set_title('Harkins Slough Diversions',fontsize= 20) 
ax.set_xlabel( "Date",fontsize=18)
ax.set_ylabel("cubic meters",fontsize=18)
plt.legend(fontsize=15)

fig.savefig(os.path.join(outPath4,'plot_fig.pdf'))

1 Ответ

0 голосов
/ 27 мая 2020

Проблема в том, что создаваемый вами сюжет не соответствует фигуре, которую вы создаете (и сохраняете). Во второй строке:

ax = result_m.plot( kind='line',  figsize=(20, 10),fontsize=15)

pandas создает новую фигуру, поскольку вы не указали аргумент оси (ax). См. Документацию pandas по построению , чтобы указать c подзаголовки .

. Вы можете исправить это, пропустив этап создания фигуры, а затем получив рисунок, созданный pandas по оси object:

ax = result_m.plot( kind='line',  figsize=(20, 10),fontsize=15)
fig = ax.figure

или добавив график к созданной вами фигуре, сначала создав подзаговор:

fig = plt.figure(size=(20, 10))
ax = fig.add_subplot(111)
ax = result_m.plot( kind='line',  fontsize=15, ax=ax)

Обратите внимание, что в этой опции определите атрибут фигуры size когда вы создаете фигуру, а не передавая figsize в DataFrame.plot.

...