Diese Antwort von vor ein paar Jahren zeigt, wie Sie jupyter Notebook Grafiken als Svg erstellen können. Die Lösung besteht darin, das InlineBackend anzuweisen, svg
als Ausgabe zu verwenden.
Dadurch werden alle Bilder im SVG-Format innerhalb des Notebooks sowie in der erstellten ipynb-Datei angezeigt. Die Datei wird eine Zeile wie
haben %Vor%drin.
Das Problem ist jetzt, dass dies nicht funktioniert, wenn das %matplotlib notebook
Backend verwendet wird. %config InlineBackend
ändert nichts für das Notebook-Backend, daher enthält die Ausgabedatei ein PNG-Bild
Die Frage ist also: Wie bekomme ich die ipynb-Datei, um eine statische Version des Plots aufzunehmen, das mit dem %matplotlib notebook
Backend als SVG-Bild erstellt wurde?
Es gibt einen kleinen Kommentar von @mark jay von vor einem Monat, der genau das machen wollte, was ich wollte möchte jetzt tun, aber es gibt keine Antwort oder einen Hinweis auf diesen Kommentar.
In meinem Code habe ich direkt aus dem Datenrahmen gezeichnet:
%Vor% Dies funktioniert perfekt, ohne matplotlib.pyplot
zu importieren, aber es kann auch nicht gezwungen werden, die Grafik als Svg zu erstellen. Ich nehme an, wenn der Basisfall funktionieren würde, könnte ich den Zeichencode so ändern, dass er keine Pandas oder Datenrahmen enthält.
Da anscheinend selbst nach einer Bounty-Periode niemand in der Lage war, eine Lösung bereitzustellen, könnte eine Umgehungslösung wie folgt aussehen:
%matplotlib notebook
. Sobald Sie mit dem Ergebnis zufrieden sind, speichern Sie es. Verwenden Sie eine Kopie davon und ersetzen Sie %matplotlib notebook
durch
Führen Sie das komplette Notebook erneut aus. Speichern Sie das Ergebnis.
%matplotlib notebook
. Das Endergebnis wird ein ipynb mit Svg-Bildern sein. Nach dem Öffnen und Ausführen wird das Notebook-Backend für die Erstellung von Grafiken verwendet.
Aus dem, was ich beim Lesen von Matplotlib-Backends verstehe, verwendet nbagg, das mit %matplotlib notebook
aufgerufen wird, das Agg-Rendering (Anti-Grain-Geometrie), das keine Vektorgrafiken darstellen kann. Leider ist dies die einzige Möglichkeit, ein interaktives Inline-Backend für Jupyter zu verwenden.
Google Docs Link Ссылка
Ähnliche Antwort Wie macht man matplotlibs nbagg backend SVGs erzeugen?
Wenn Sie die Interaktivität nicht benötigen, verwenden Sie einfach
%Vor%dann
%Vor%Tags und Links python matplotlib pandas jupyter-notebook