Python - PDF mit Grafiken erstellen, Teil 2

Inhaltsverzeichnis
Im ersten Teil des Tutorials beschreiben wir die grundlegenden Punkte, warum Python Es ist eine gute Option, grafische Elemente aus Textdaten zu erstellen, wir konnten auch ein wenig sehen, wie das Modul zu handhaben ist ReportLab ein einfaches PDF mit gezeichnetem Testtext zu generieren.
Vorbereitung
Um unser Projekt durchzuführen, werden wir einige historische Daten über den Sonnenstand nehmen, die wir von der Website der SEC oder des Space Environment Centers nehmen, sie sind ursprünglich in einer .txt-Datei, aber um unsere Entwicklung zu beschleunigen, gehen wir vor um es wie folgt direkt in unser Programm in ein Tupel einzubinden:
 data = [# Year Month Prediction High Low (2004, 12, 34.2, 35.2, 33.2), (2005, 1, 31.5, 34.5, 28.5), # Fortsetzung mit weiteren Daten] 

Es ist wichtig zu erwähnen, dass wir mit diesen Daten, die wir füttern, die Linien unseres Diagramms generieren.
Verwenden von Polylinien
Bevor wir fortfahren, müssen wir wissen, wie man die Linien zeichnet, dafür verwenden wir PolyLinien das ist nur eins ReportLab-Klasse die es uns erlaubt, Linien aus Koordinaten zu generieren, diese Koordinaten werden als Argument empfangen. Sehen wir uns als nächstes an, wie Sie ein einfaches Diagramm erstellen.
Mit der PolyLine-Linie ([(0, 0), (10, 0), (10, 10), (0, 10)]) können wir einen Graphen erzeugen, den wir im folgenden Bild sehen:

Erste Implementierung
Da wir wissen, mit welchen Tools wir arbeiten werden, ist es an der Zeit, unsere erste Version des Programms zu erstellen.
Zuerst sehen wir uns den vorgeschlagenen Code an und erklären dann, wie er funktioniert:
 aus reportlab.lib Farben aus reportlab.graphics.shapes importieren * aus reportlab.graphics importieren renderPDF-Daten importieren = [(2005, 8, 113.2, 114.2, 112.2), (2005, 9, 112.8, 115.8, 109.8), (2005, 10, 111,0, 116,0, 106,0), (2005, 11, 109,8, 116,8, 102,8), (2005, 12, 107,3, 115,3, 99,3), (2006, 1, 105,2, 114,2, 96,2), (2006, 2, 104.1, 114.1, 94.1, (2006, 3, 99.9, 110.9, 88.9), (2006, 4, 94.8, 106.8, 82.8), (2006, 5, 91.2, 104.2, 78.2),] Zeichnung = Zeichnung (200, 150) pred = [Zeile [2] -40 für Datenzeile] high = [Zeile [3] -40 für Datenzeile] low = [Zeile [4] -40 für Datenzeile] mal = [200 * ( (Zeile [0] + Zeile [1] /12.0) - 2005) -110 für Zeile in Daten] draw.add (PolyLine (zip (times, pred),strokeColor = colors.blue)) drawing.add (PolyLine (zip (Zeiten, hoch), StrokeColor = Farben.Rot)) Drawing.add (PolyLine (Zip (Zeiten, Niedrig), StrokeColor = Farben.Grün)) Drawing.add (String (65, 115, 'Sonnenflecken', fontSize = 18 .) , fillColor = colors.red)) renderPDF.drawToFile (Zeichnung, 'report1.pdf', 'Sonnenflecken') 

Im Code beginnen wir mit dem Importieren der erforderlichen Pakete, wir binden die Farbklasse Damit können wir die Grafiken in Farbe zeichnen, dann definieren wir unsere Daten. Dieses Mal haben wir viel mehr Daten eingefügt, um eine vollständigere Grafik zu erstellen.
Wir instanziieren die Zeichenunterricht und dann bereiten wir die drei Variablen vor, die wir übersetzen werden.
Endlich bei ihm Methode hinzufügen Wir integrieren die definierten Variablen mit den bereits vorbereiteten Daten, sobald wir die 3 Abschnitte haben, erstellen wir das PDF mit der Methode drawToFile und am Ende sollten wir etwas sehr ähnliches haben:

Wie wir sehen, haben wir bereits die Linien entsprechend den eingearbeiteten Daten gezogen, müssen dem Bericht jedoch noch etwas mehr Bedeutung geben, dafür müssen wir Richtlinien einarbeiten, aber wenn wir wissen, wie das funktioniert, können wir den Rest belassen zu ihnen.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave