Я успешно создал график, но когда я пытаюсь экспортировать его с помощью plt.savefig(), я получаю только пустой PDF-документ.
Вот MWE, потому что мой фактический код довольно сложен:
Код: Выделить всё
import numpy as np;
import matplotlib.pyplot as plt;
geogrph=plt.axes(projection="3d");
thetaE=np.linspace(0,np.pi,501);
phiE=np.linspace(0,2*np.pi,501);
thetaE,phiE=np.meshgrid(thetaE,phiE);
xE=np.sin(thetaE)*np.cos(phiE);
yE=np.sin(thetaE)*np.sin(phiE);
zE=np.cos(thetaE);
geogrph.plot_surface(xE,yE,zE);
plt.savefig("geogrph.pdf");
Как уже говорилось, приведенный выше код выводит пустой PDF-файл. Он отображает ожидаемый график во внешнем интерфейсе Jupyter (см. ниже), но по какой-то причине не может его сохранить. Я знаю, что plt.show() вызывает такое поведение и поэтому его следует размещать после plt.savefig(), но в этом случае я даже не использую plt.show(), поэтому не знаю, что происходит.
График:

Я где-то читал, что это может произойти, когда включен встроенный %matplotlib, и это можно решить, переключившись на блокнот %matplotlib. Однако выполнение этой команды приводит к ошибке:
(...) ImportError: невозможно импортировать имя «alert» из «js» (неизвестное местоположение)"],"output_type":"error"}],"execution_count":236}]
Затем я где-то прочитал, что для работы коммутатора необходимо установить ipympl, поэтому я попробовал добавить pip install ipympl в начале ячейки. Однако я все еще получаю вышеупомянутую ошибку.
Я новичок в Python, если это не очевидно. Мой опыт в основном связан с Mathematica и MatLab, и я не привык к такого рода ошибкам, поэтому понятия не имею, как это отладить.
Заранее спасибо за любые сообщения. помогите.
Подробнее здесь: https://stackoverflow.com/questions/798 ... lt-savefig
Мобильная версия