Почему plt.savefig() сохраняет изображение определенного размера, но когда я его открываю, оно пустое?

#python #matplotlib

#python #matplotlib

Вопрос:

Когда я сохраняю фигуру в matplotlib, фигура сохраняется и также имеет некоторый размер, но когда я открываю ее, она пуста, и я не могу открыть ее с помощью Ipython.display.Также ниже приведен фрагмент кода

 %matplotlib inline
import matplotlib.pyplot as plt
'2.1.2'
import matplotlib.pyplot as plt
import numpy as np
x =np.linspace(0,10,100)
fig = plt.figure()
plt.plot(x,np.sin(x),'-')

plt.plot(x,np.cos(x),'--')
fig.savefig('my_figure.png',dpi=300)
from IPython.display import Image
Image('my_figure.png')
  

Этот код взят из «Справочника по науке о данных Python», и я копирую его как есть.

Комментарии:

1. не удается воспроизвести ваш результат, пожалуйста, обновите версию matplotlib. это может решить вашу проблему.

2. Я повысил свою версию matplotlib до 3.1.2. Но проблема все еще существует.

3. Я использую 3.3.1. не удается воспроизвести, но я не думаю, что это проблема matplotlib, попробуйте другое средство чтения или просмотра изображений?

4. Я не уверен, что другое средство чтения или просмотра изображений поможет, потому что, когда я открываю сохраненное изображение с помощью Windows Photo или ms paint, оно пустое.

5. Проблема решена. Я использовал отдельную ячейку в jupyter notebook для каждой строки кода. Теперь я набрал приведенный ниже код в одной ячейке, и он работает x =np.linspace(0,10,100) fig = plt.figure() plt.plot(x,np.sin(x),'-') plt.plot(x,np.cos(x),'--'); Извините @ted930511 за глупый вопрос. Я новичок в python и Matplotlib. У вас есть какое-либо объяснение, почему оно работало в одной ячейке, но не в нескольких ячейках. Помощь приветствуется.