Python - PDF izveide ar grafiku, 2. daļa

Satura rādītājs
Apmācības pirmajā daļā mēs aprakstām iemeslus, kāpēc Python Tā ir laba iespēja veidot grafiskos elementus no teksta datiem, mēs varētu arī nedaudz redzēt, kā rīkoties ar moduli ReportLab lai ģenerētu vienkāršu PDF failu ar uzzīmētu testa tekstu.
Sagatavošana
Lai īstenotu savu projektu, mēs ņemsim dažus vēsturiskus datus par saules stāvokli, mēs to ņemam no SEC vai Kosmosa vides centra tīmekļa vietnes, tas sākotnēji ir .txt failā, tomēr, lai paātrinātu mūsu attīstību, mēs ejam iekļaut to tieši mūsu programmā šādā veidā:
 dati = [ # Gada mēneša prognoze Augsta zema (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Turpina ar vairāk datu] 

Ir svarīgi pieminēt, ka, izmantojot šos datus, mēs ģenerēsim mūsu diagrammas līnijas.
Izmantojot polilīnijas
Pirms turpināt, mums jāzina, kā novilkt līnijas, tāpēc mēs to izmantosim PolyLines kas ir tikai viens ReportLab klase kas ļauj mums ģenerēt līnijas no koordinātām, šīs koordinātas tiek saņemtas kā arguments. Tālāk apskatīsim, kā izveidot vienkāršu grafiku.
Izmantojot PolyLine līniju ([[(0, 0), (10, 0), (10, 10), (0, 10)]), mēs varam izveidot grafiku, ko redzam šādā attēlā:

Pirmā ieviešana
Tā kā mēs zinām, ar kādiem rīkiem mēs strādāsim, ir pienācis laiks izveidot mūsu pirmo programmas versiju.
Vispirms mēs redzēsim piedāvāto kodu, pēc tam paskaidrosim, kā tas darbojas:
 no reportlab.lib importēt krāsas no reportlab.graphics.shapes importēt * no reportlab.graphics importēt renderPDF dati = [(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),] rasējums = Zīmējums (200, 150) pred = [rinda [2] -40 datu rindai] augsts = [rinda [3] -40 datu rindai] zems = [rinda [4] -40 datu rindai] reizes = [200 * ( (rinda [0] + [1] /12,0. rinda) - 2005) -110 datu rindai] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip (reizes, augsts), insultsColor = colors.red)) drawing.add (PolyLine (zip (times, low)), strokeColor = colors.green)) drawing.add (String (65, 115, 'Sunspots', fontSize = 18) , fillColor = colors.red)) renderPDF.drawToFile (zīmējums, 'report1.pdf', 'Sunspots') 

Kodā, ko mēs sākam, importējot nepieciešamās paketes, mēs iekļaujam krāsu klase kas ļauj mums zīmēt grafikus krāsās, tad mēs definējam savus datus, šoreiz esam iekļāvuši daudz vairāk datu, lai izveidotu pilnīgāku grafiku.
Mēs momentānojam Zīmēšanas klase un tad mēs sagatavojam trīs mainīgos, kurus mēs tulkosim.
Beidzot ar viņu pievienošanas metode mēs iekļaujam mainīgos, kas definēti ar jau sagatavotiem datiem, kad mums ir 3 sadaļas, mēs veidojam PDF failu ar šo metodi drawToFile un galu galā mums vajadzētu būt kaut kam ļoti līdzīgam šādam:

Kā redzam, mēs jau esam novilkuši līnijas, kas atbilst iekļautajiem datiem, tomēr mums vēl ir jāpiešķir ziņojumam nedaudz lielāka nozīme, tāpēc mums ir jāiekļauj pamatnostādnes, tomēr, kad mēs zinām, kā tas darbojas, mēs varam atstāt pārējo viņiem.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave