Nehmen Sie die Ausgabe von% matplotlib notebook backend als SVG in ipynb auf

8

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.

%Vor%

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

%Vor%

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.

    
cardamom 02.08.2017, 17:04
quelle

2 Antworten

1

Da anscheinend selbst nach einer Bounty-Periode niemand in der Lage war, eine Lösung bereitzustellen, könnte eine Umgehungslösung wie folgt aussehen:

  1. Erstelle dein Notizbuch mit %matplotlib notebook . Sobald Sie mit dem Ergebnis zufrieden sind, speichern Sie es.
  2. Verwenden Sie eine Kopie davon und ersetzen Sie %matplotlib notebook durch

    %Vor%

    Führen Sie das komplette Notebook erneut aus. Speichern Sie das Ergebnis.

  3. Öffnen Sie die resultierende ipynb-Datei in einem Texteditor und ersetzen Sie die vorherigen zwei Zeilen wieder mit %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.

    
ImportanceOfBeingErnest 15.08.2017 14:20
quelle
1

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%     
fcsr 13.08.2017 20:41
quelle