Indholdsfortegnelse
I den første del af selvstudiet beskriver vi de grundlæggende punkter i hvorfor Python Det er en god mulighed for at bygge grafiske elementer ud fra tekstdata, vi kunne også se lidt hvordan man håndterer modulet ReportLab at generere en enkel PDF med tegnet testtekst.Forberedelse
For at udføre vores projekt skal vi tage nogle historiske data om solens position, vi tager dette fra hjemmesiden for SEC eller Space Environment Center, det er oprindeligt i en .txt -fil, men for at fremskynde vores udvikling går vi at inkludere det direkte i vores program i en tuple som følger:
data = [ # År Måned Forudsigelse Høj Lav (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Fortsætter med flere data]
Det er vigtigt at nævne, at med disse data, som vi vil fodre, genererer vi linjerne i vores graf.
Brug af Polylines
Inden vi fortsætter, skal vi vide, hvordan vi tegner stregerne, til dette vil vi bruge PolyLines som kun er en ReportLab -klasse der tillader os at generere linjer fra koordinater, modtages disse koordinater som et argument. Lad os derefter se, hvordan du genererer en simpel graf.
Med PolyLine -linjen ([(0, 0), (10, 0), (10, 10), (0, 10)]) kan vi generere en graf, som vi ser i følgende billede:
Første implementering
Da vi ved, hvilke værktøjer vi skal arbejde med, er det tid til at lave vores første version af programmet.
Først skal vi se den foreslåede kode, derefter forklarer vi, hvordan den fungerer:
fra reportlab.lib importfarver fra reportlab.graphics.shapes import * fra 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),] drawing = Drawing (200, 150) pred = [række [2] -40 for række i data] høj = [række [3] -40 for række i data] lav = [række [4] -40 for række i data] gange = [200 * ( (række [0] + række [1] /12.0) - 2005) -110 for række i data] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip (gange, høj), strokeColor = farver.rød)) drawing.add (PolyLine (lynlås (gange, lav), strokeColor = farver.green)) drawing.add (String (65, 115, 'Solpletter', fontSize = 18 , fillColor = colors.red)) renderPDF.drawToFile (tegning, 'report1.pdf', 'Sunspots')
I koden starter vi med at importere de nødvendige pakker, vi inkluderer farver klasse der giver os mulighed for at tegne graferne i farve, så definerer vi vores data, denne gang har vi inkluderet meget flere data for at lave en mere komplet graf.
Vi instantiserer Tegningsklasse og så forbereder vi de tre variabler, som vi skal oversætte.
Endelig med ham tilføj metode vi inkorporerer de variabler, der er defineret med de data, der allerede er forberedt, når vi har de 3 sektioner, bygger vi PDF'en med metoden drawToFile og i sidste ende skulle vi have noget, der ligner meget følgende:
Som vi kan se, har vi allerede tegnet de linjer, der svarer til de inkorporerede data, men vi skal stadig give rapporten lidt mere mening, for dette skal vi indarbejde retningslinjer, men når vi ved, hvordan dette fungerer, kan vi forlade resten til dem.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt