Python - Creați PDF cu grafică, partea 2

Cuprins
În prima parte a tutorialului descriem punctele de bază ale motivului Piton Este o opțiune bună pentru a construi elemente grafice din date text, am putea vedea, de asemenea, un pic cum să gestionăm modulul ReportLab pentru a genera un PDF simplu cu text de test desenat.
Pregătirea
Pentru a ne realiza proiectul, vom lua câteva date istorice despre poziția soarelui, luăm acest lucru de pe site-ul web al SEC sau Space Environment Center, este inițial într-un fișier .txt, cu toate acestea, pentru a accelera dezvoltarea noastră, mergem să îl includem direct în programul nostru într-un tuplu după cum urmează:
 date = [# An lună predicție mare scăzut (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # continuă cu mai multe date] 

Este important să menționăm că, cu aceste date pe care le vom alimenta, vom genera liniile graficului nostru.
Folosind Polylines
Înainte de a continua, trebuie să știm cum să trasăm liniile, pentru aceasta vom folosi PolyLines care este doar unul Clasa ReportLab care ne permite să generăm linii din coordonate, aceste coordonate sunt primite ca argument. Să vedem în continuare cum să generăm un grafic simplu.
Cu linia PolyLine ([(0, 0), (10, 0), (10, 10), (0, 10)]) putem genera un grafic pe care îl vedem în următoarea imagine:

Prima implementare
Din moment ce știm cu ce instrumente vom lucra, este timpul să facem prima noastră versiune a programului.
Mai întâi vom vedea codul propus, apoi vom explica cum funcționează:
 din reportlab.lib import culorile din reportlab.graphics.shapes import * din reportlab.graphics import renderPDF data = [(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),] desen = Desen (200, 150) pred = [rând [2] -40 pentru rând în date] mare = [rând [3] -40 pentru rând în date] scăzut = [rând [4] -40 pentru rând în date] ori = [200 * ( (rând [0] + rând [1] /12.0) - 2005) -110 pentru rând în date] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip) (times, high), strokeColor = colors.red)) drawing.add (PolyLine (zip (times, low), strokeColor = colors.green)) drawing.add (String (65, 115, 'Sunspots', fontSize = 18 , fillColor = colors.red)) renderPDF.drawToFile (desen, 'report1.pdf', 'Sunspots') 

În cod începem prin importul pachetelor necesare, includem clasa culorilor care ne permite să desenăm graficele în culori, apoi ne definim datele, de data aceasta am inclus mult mai multe date pentru a face un grafic mai complet.
Instanțiem Clasa de desen și apoi pregătim cele trei variabile pe care urmează să le traducem.
În cele din urmă cu el adaugă metoda încorporăm variabilele definite cu datele deja pregătite, odată ce avem cele 3 secțiuni construim PDF-ul cu metoda drawToFile și în cele din urmă ar trebui să avem ceva foarte asemănător cu următorul:

După cum putem vedea, am trasat deja liniile corespunzătoare datelor încorporate, totuși trebuie totuși să dăm raportului un pic mai mult sens, pentru aceasta trebuie să încorporăm linii orientative, totuși, odată ce știm cum funcționează, putem lăsa restul lor.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave