Was ist der beste Weg, um mit Python einen Bericht im PDF-Format mit mehr als 100 Diagrammen zu erstellen?

Ich brauche einen Bericht im PDF-Format mit vielen in Python codierten Plots. Die meisten von ihnen werden mit Matplotlib innerhalb einer Schleife erstellt, aber ich müsste auch Pandas-Plots und Datenrahmen (die gesamte Ansicht) und Seaborn-Plots einbeziehen. Im Moment habe ich folgende Lösungen untersucht:

  • PythonTex. Ich habe es bereits für andere Projekte verwendet, aber es würde viel Zeit in Anspruch nehmen, weil Sie \pythontexprint für jeden Plot schreiben müssen, den Sie anzeigen möchten.
  • Verwenden Sie den savefig-Befehl des Matplotlib-Pakets in jeder Iteration der Schleife und speichern Sie alle Plots als Bild, um sie später alle in Latex einzufügen. Das wäre auch eine sehr zeitaufwändige Wahl. Eine andere Option ist, mit diesem Befehl die Plots als PDF zu speichern und dann alle PDFs zusammenzuführen. Das würde einen hässlichen Bericht erzeugen, da die Plots nicht auf die ganze Seite passen würden.
  • Verwenden Sie RStudio mit Reticulate zum Erstellen eines Markdown-Berichts. Das Problem hier ist, dass ich die retikulierende Funktionalität lernen müsste und somit Zeit aufwenden müsste. Soweit ich weiß, entspricht PyPDF nicht meinen Anforderungen.
  • Erstellen Sie ein Jupyter-Notebook und versuchen Sie dann, es in eine PDF-Datei zu exportieren. Noch einmal, ich weiß nicht, wie man jupyter notebook benutzt und ich habe gelesen, dass ich zuerst in html und dann in pdf konvertieren müsste.
  • Lösungen von hier: Generieren von Berichten mit Python: PDF oder HTML zu PDF Die Frage ist jedoch von vor drei Jahren und es könnte heutzutage bessere Optionen geben.

Meine Frage lautet also: Gibt es eine einfache und schnelle Möglichkeit, all diese Diagramme (wenn sie entlang des Codes generiert werden, der sie noch besser generiert) in einem PDF mit einem anständigen Aspekt zu erhalten?

ReportLab funktioniert gut.

Antworten (1)

Wenn Sie Python, Pandas & Matplotlib bereits kennen, sind Jupyter Notebooks schnell und einfach zu erlernen. Sie können Jupyter anweisen, ein Notebook als PDF zu rendern, ohne dass Sie manuell in HTML eingreifen müssen.

Aus dem Obigen geht hervor, dass eine Reihe Ihrer Diagramme aus denselben Daten und mit demselben Mechanismus, aber mit unterschiedlichen Parametern generiert werden. Daher würde ich vorschlagen, dies in eine parametrisierte Funktion umzuwandeln, die ein Diagramm zurückgibt, und dann eine Zelle zu haben, die dies für jedes erforderliche Diagramm aufruft . Sie können auch Markdown-Zellen verschachteln, um die Methodik und die Bedeutung der folgenden Diagramme zu beschreiben.

Vielleicht möchten Sie einen Blick auf Jupyter Lab werfen, um eine modernere Benutzeroberfläche zu erhalten.

Einige weiterführende Literatur finden Sie unter:

und ich empfehle besonders, einen Blick auf die zweite dieser beiden zu werfen.