La meg begynne med å vise deg følgende graf:
Det ser kjent ut, ikke sant? Dette kalles et strekkediagram. Vi tegner vanligvis dem ved hjelp av forskjellige applikasjoner som Microsoft Excel og Microsoft Word.
Hvis vi vil ha mer kontroll over prosessen med å lage graf, vil det være det beste valget å programmere skape slike grafer.
I denne opplæringen vil jeg vise deg hvordan vi kan lage bargrafer ved hjelp av Python. Klar?
Hvis du er interessert i å grave dypere inn i Python og lære å bruke Pythons kraft til å håndtere data, hvorfor ikke sjekke disse to kursene:
For å utføre oppgaven med å tegne et strekkdiagram, må vi hovedsakelig ha to moduler: Bildemodulen og ImageDraw-modulen, som begge importeres fra Python Imaging Library (PIL). De Bilde
Modulen brukes til å laste et bilde, mens Imagedraw
modulen vil bli brukt til å lage 2D-grafikken (dvs. tegne en linje).
Når du nevner PIL, la meg vise deg hvordan vi kan installere det. Men jeg vil vise deg hvordan du installerer pute i stedet. Årsaken til det er den nyeste versjonen for PIL, PIL 1.1.7, ble utgitt i 2009 og støtter bare Python 1.5.2-2.7. Det har således ikke støtte for Python 3.X, og jeg er redd for at utviklingen har blitt avviklet siden den siste forpliktelsen til PIL-prosjektet var i 2011.
Pute her kommer til redning som den har forked PIL-depotet og lagt til Python 3.X-støtte. Så jeg bruker pute for lesernes skyld, som bruker Python 3.X. Men det gjør ikke vondt for å jobbe med pute hvis du bruker tidligere Python-versjoner.
Trinnene som er nevnt i denne delen om installering av pute er for brukere av Mac OS X, siden jeg for øyeblikket skriver denne opplæringen på et Mac OS X El Capitan-system, men du kan følge instruksjonene i dokumentasjonen for andre operativsystemer.
En enkel måte å installere Pillow på Macen din er via pip, som kan installeres ved å skrive følgende enkle kommando på terminalen din:
$ sudo easy_install pip
Pute på dette punktet kan enkelt installeres ved å skrive:
$ sudo pip installere pute
La oss nå gå gjennom bygningsblokkene i programmet trinnvis. Det første vi trenger er et tomt bilde som vi skal tegne vår bargrafikk på. Du kan laste ned det tomme bildet.
La oss nå lese dette tomme bildet og tegne det. Vi kan gjøre dette på følgende måte:
fra PIL import Image, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img)
Siden vi vil tegne et strekediagram, trenger vi noen data. For dette kan vi bruke lister. Dermed kan våre data (liste) se slik ut:
data = ['4', '5', '87', '1', '44', '83', '93', '2', '54', '84', '100', '64' ]
På dette punktet er alt vi trenger å gjøre ved å tegne bardiagrammet. Vi vil behandle stengene vi ser på grafen som linjer. Så vi skal gjøre bruk av linje()
metode av Imagedraw
modul.
Jeg vil vise deg koden som skal utføre oppgaven med å tegne et strekkediagram, og jeg vil forklare det etterpå:
for jeg i data: x = x + 30 y = 200 - int (i) draw_img.line ((x, 200, x, y), bredde = 10, fyll = = 255,0,0255))
Som du kan se, sløyfe vi gjennom vår liste og tegner et linjediagram ved hjelp av dataene i listen. x = x + 30
gir oss den nødvendige plassen mellom hvert datapunkt i listen på x-aksen. Før jeg fortsetter, vil jeg minne deg om at (0,0)
pek på bildet er øverst til venstre Aksens punkt. Så det ville være som å tegne linjene opp ned til den vanlige måten vi er vant til når du markerer punktkoordinatene på en graf.
Hvis vi hopper til siste linje i forrige skriptport, kan vi lese denne delen draw_img.line ((x, 200, x, y)
som følger: Tegn en linje fra punktet (X, 200)
til punktet (X, y)
. Så, hvis vi starter med det første datapunktet 4
, linjen vil bli trukket fra (34200)
til (34196)
. Når jeg viser utgangen på en stund, så vil x-aksen vises som om det var det vi vanligvis pleier å bruke (fra venstre bunn til punktet (0,0)
). Trikset her var å bruke y = 200
. Som du vil se, vil vi alltid ha en linje trukket der y = 200
for alle datapunkter, og dette vil gi oss inntrykk av måten vi brukte til å tegne poeng på en graf når vi så på resultatet.
De bredde
representerer bredden (tykkelsen) av linjen, og fylle = (255,0,0,255)
representerer fargen på linjen. Det er det RGBA
farge (en utvidelse av RGB-fargene med en alfa-kanal som representerer opaciteten).
Til slutt kan vi se bildet ved hjelp av setningen: img.show ()
.
Nå som vi har dekket byggeklossene i vårt program, la oss sette alt sammen og se hvordan vårt skript ser ut:
fra PIL import Image, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img) data = ['4', '5', '87', '1', '44', ' 83 ',' 93 ',' 2 ',' 54 ',' 84 ',' 100 ',' 64 '] x = 0 for i i data: x = x + 30 y = 200 - int (i) draw_img. linje (x, 200, x, y), bredde = 10, fylle = (255,0,0255)) img.show ()
Nå kommer den interessante delen, resultatet av det ovennevnte skriptet. Hvis du kjører programmet, bør du ha noe som ligner på følgende:
Jeg har beskåret den øverste delen av bildet i dette øyeblikksbildet; Det skal se større ut i originalutgangen.
Som vi så fra denne opplæringen, for å få mer kontroll over noen vanlige oppgaver som å tegne en graf for noen data, ville det være vei å bruke et programmeringsspråk (det vil si Python).
Vi trenger imidlertid ikke alltid å utføre slike oppgaver fra bunnen av; Vi kan i stedet dra nytte av brukerdefinerte biblioteker som pute i vår veiledning. Bruke et slikt bibliotek gjorde det enkelt for oss å tegne bardiagrammet, og ved hjelp av Python ga vi kontroll og fleksibilitet ved å bruke noen triks for å utføre grafen slik vi ønsket.