Jupyter Lite gibt eine leere Datei aus, wenn ich plt.savefig() verwende [geschlossen]Python

Python-Programme
Anonymous
 Jupyter Lite gibt eine leere Datei aus, wenn ich plt.savefig() verwende [geschlossen]

Post by Anonymous »

Ich schreibe einen Python-Code, der ein Diagramm erstellen und es als Vektor-PDF-Datei exportieren soll. Ich verwende Jupyter Lite auf jupyter.org.
Ich habe das Diagramm erfolgreich erstellt, aber wenn ich versuche, es mit plt.savefig() zu exportieren, erhalte ich nur ein leeres PDF-Dokument.
Hier ist ein MWE, weil mein tatsächlicher Code ziemlich komplex ist:

Code: Select all

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");
(Ich weiß, dass es nicht notwendig ist, am Ende jeder Codezeile in Python ein Semikolon hinzuzufügen. Das ist eine Gewohnheit beim Codieren in Mathematica und in C++, und es vermeidet, dass Jupyter zufälligen Unsinn wie ausgibt, wenn ich eine Legende oder ähnliches verwende. Da es keinen Schaden anrichtet und eine hat kleiner Vorteil, ich habe mich dafür entschieden.)
Wie bereits erwähnt, gibt der obige Code eine leere PDF-Datei aus. Es zeigt zwar das erwartete Diagramm auf dem Jupyter-Frontend an (siehe unten), kann es aber aus irgendeinem Grund nicht speichern. Mir ist bekannt, dass plt.show() dieses Verhalten verursacht und daher nach plt.savefig() platziert werden sollte, aber ich verwende plt.show() in diesem Fall nicht einmal, daher weiß ich nicht, was los ist.
Grafik:
Image

Ich habe irgendwo gelesen, dass dies passieren kann, wenn %matplotlib inline aktiviert ist, und es kann durch den Wechsel zu %matplotlib notebook gelöst werden. Die Ausführung dieses Befehls führt jedoch zu einem Fehler:

(...) ImportError: failed import name 'alert' from 'js' (unknown location)"],"output_type":"error"}],"execution_count":236}]

Ich habe dann irgendwo anders gelesen, dass ipympl installiert werden muss, damit der Switch funktioniert, also habe ich versucht, etwas hinzuzufügen pip install ipympl am Anfang der Zelle. Ich erhalte jedoch immer noch den oben genannten Fehler.
Ich bin ein absoluter Neuling in Python, falls es nicht offensichtlich war, und ich bin nicht an diese Art von Fehler gewöhnt, daher habe ich keine Ahnung, wie ich das debuggen kann.
Vielen Dank im Voraus für jede Hilfe.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post