Turinys
Pirmoje pamokos dalyje aprašome pagrindinius dalykus, kodėl Python Tai geras pasirinkimas sukurti grafinius elementus iš teksto duomenų, taip pat galėtume šiek tiek pamatyti, kaip elgtis su moduliu ReportLab sukurti paprastą PDF failą su nupieštu bandomuoju tekstu.Paruošimas
Norėdami įgyvendinti savo projektą, mes paimsime keletą istorinių duomenų apie saulės padėtį, paimame juos iš SEC arba Kosmoso aplinkos centro svetainės, ji iš pradžių yra .txt faile, tačiau norėdami paspartinti savo vystymąsi, mes einame įtraukti jį tiesiai į mūsų programą į eilutę taip:
duomenys = [ # Metų mėnesio prognozė aukšta žemiausia (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Tęsiama su daugiau duomenų]
Svarbu paminėti, kad naudodami šiuos duomenis, kuriuos pateiksime, sukursime savo grafiko eilutes.
Naudojant „Polylines“
Prieš tęsdami, turime žinoti, kaip nubrėžti linijas, todėl mes tai naudosime PolyLines kuris yra tik vienas ReportLab klasė tai leidžia mums generuoti eilutes iš koordinačių, šios koordinatės gaunamos kaip argumentas. Toliau pažiūrėkime, kaip sukurti paprastą grafiką.
Naudodami „PolyLine“ liniją ([[(0, 0), (10, 0), (10, 10), (0, 10)]) galime sukurti grafiką, kurį matome šiame paveikslėlyje:
Pirmasis įgyvendinimas
Kadangi žinome, su kokiomis priemonėmis ketiname dirbti, atėjo laikas sukurti pirmąją programos versiją.
Pirmiausia pamatysime siūlomą kodą, tada paaiškinsime, kaip jis veikia:
iš reportlab.lib importuoti spalvas iš reportlab.graphics.shapes importuoti * iš reportlab.graphics importuoti renderPDF duomenys = [(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),] brėžinys = Brėžinys (200, 150) pred = [eilutė [2] -40 duomenų eilutei] aukšta = [eilutė [3] -40 eilutei duomenyse] žemas = [eilutė [4] -40 duomenų eilutei] kartus = [200 * ( (eilutė [0] + [1] eilutė /12,0) - 2005 m.) -110 duomenų eilutei] 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 (piešinys, 'report1.pdf', 'Sunspots')
Į kodą, kurį pradedame importuodami reikiamus paketus, įtraukiame spalvų klasė tai leidžia mums piešti grafikus spalvotai, tada mes apibrėžiame savo duomenis, šį kartą įtraukėme daug daugiau duomenų, kad sudarytume išsamesnę diagramą.
Mes imituojame Piešimo klasė ir tada paruošiame tris kintamuosius, kuriuos ketiname versti.
Pagaliau su juo pridėti metodą mes įtraukiame kintamuosius, apibrėžtus su jau paruoštais duomenimis, kai turėsime 3 skyrius, PDF rinkinį sudarysime pagal šį metodą drawToFile ir galų gale turėtume kažką labai panašaus į šį:
Kaip matome, mes jau nubrėžėme linijas, atitinkančias įtrauktus duomenis, tačiau vis tiek turime šiek tiek daugiau įprasminti ataskaitą, nes tam turime įtraukti orientacines eilutes, tačiau sužinoję, kaip tai veikia, galime palikti likusią dalį jiems.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką