Listează la Graficul Cum să reprezinți lista dvs. ca un grafic în Python

Permiteți-mi să încep prin a vă arăta următorul grafic:

Pare familiar, nu-i așa? Aceasta se numește graf de bare. În mod normal le atragem folosind aplicații diferite precum Microsoft Excel și Microsoft Word.

Dacă vrem să avem mai mult control asupra procesului de creare a graficelor, crearea grafică a acestor grafice ar fi cea mai bună alegere.

În acest tutorial vă voi arăta cum putem crea grafice de bare folosind Python. Gata?

Dacă sunteți interesat să săturați mai adânc în Python și să învățați cum să utilizați puterea lui Python de a gestiona datele, de ce nu verificați aceste două cursuri:

Modulele de care avem nevoie?

Pentru a realiza sarcina de a desena un grafic de bare, vom avea nevoie în principal de două module: modulul Imagine și modulul ImageDraw, ambele fiind importate din Biblioteca de Imagistică Python (PIL). Imagine modulul va fi folosit pentru a încărca o imagine, în timp ce ImageDraw modulul va fi folosit pentru a crea grafica 2D (adică a desena o linie).

Menționând PIL, permiteți-mi să vă arăt cum îl putem instala. Dar vă voi arăta cum să instalați Pillow în loc. Motivul pentru aceasta este cea mai recentă versiune pentru PIL, PIL 1.1.7, a fost lansată în 2009 și suportă doar Python 1.5.2-2.7. Prin urmare, nu are suport pentru Python 3.X și mă tem că dezvoltarea sa a fost întreruptă de la ultimul angajament pentru proiectul PIL în 2011.

Perna aici vine la salvare deoarece a forjat depozitul PIL și a adăugat suportul Python 3.X. Deci, voi folosi Pillow de dragul cititorilor care folosesc Python 3.X. Dar nu durează să lucrezi cu pernă dacă folosiți versiuni anterioare Python.

Instalarea pernei

Pașii menționați în această secțiune despre instalarea pernei sunt pentru utilizatorii de Mac OS X, deoarece scriu acest tutorial pe un sistem Mac OS X El Capitan, dar puteți urma instrucțiunile din documentația pentru alte sisteme de operare.

O modalitate ușoară de a instala perna pe Mac este prin pip, care poate fi instalată tastând următoarea comandă simplă pe terminal:

$ sudo easy_install pip

Perna la acest punct poate fi instalată pur și simplu prin tastarea:

$ sudo pip instala perna

Construirea programului

Să trecem acum prin blocurile de bază ale programului pas cu pas. Primul lucru de care avem nevoie este o imagine neagră pe care ne vom desena graficul de bare. Puteți descărca imaginea necompletată.

Să citim acum această imagine neagră și să o desenăm. Putem face acest lucru după cum urmează:

de la importul imaginii PIL, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img)

De vreme ce dorim să desenați un grafic, avem nevoie de date. Pentru aceasta, putem folosi liste. Astfel, datele noastre (listă) pot arăta după cum urmează:

data = ['4', '5', '87', '1', '44', '83', '93', '2', ' ] 

În acest moment, tot ce trebuie să facem este să desenăm graficul de bare. Vom trata barele pe care le vedem pe grafic ca linii. Așa că vom folosi linia() metodă a ImageDraw modul.

Vă voi arăta codul care va efectua sarcina de a desena un graf de bare și o voi explica după aceea:

pentru i în date: x = x + 30 y = 200 - int (i) draw_img.line ((x, 200, x, y), lățime = 10, umplere = 255,0,0,255)

Așa cum puteți vedea, vom trece prin lista noastră și vom trage un graf de bare utilizând datele din listă. x = x + 30 ne oferă spațiul necesar între fiecare punct de date din lista de pe axa x. Înainte de a continua, vreau să vă reamintesc că (0,0) punct pe imagine este stânga sus punct al axei. Așadar, ar fi ca să trasăm liniile cu capul în jos în modul obișnuit la care suntem obișnuiți atunci când marcăm coordonatele punctelor pe un grafic.

Dacă mergem la ultima linie a porțiunii de script anterioare, putem citi această parte draw_img.line ((x, 200, x, y) după cum urmează: trageți o linie din punct (X, 200) până la punctul (X y). Deci, dacă începem cu primul punct de date 4, linia ar fi trasată de la (34200) la (34196). Astfel, atunci când vă arăt ieșirea într-un timp, axa x va apărea ca și cum ar fi ceea ce suntem obișnuiți să folosim (pornind de la partea de jos din stânga pentru punctul (0,0)). Trucul de aici a fost de a folosi y = 200. După cum veți vedea, vom avea întotdeauna o linie trasată y = 200 pentru toate punctele de date și acest lucru ne va da impresia despre modul în care am folosit pentru a atrage puncte pe un grafic atunci când ne vedeți rezultatul.

lăţime reprezintă lățimea (grosimea) liniei și umple = (255,0,0,255) reprezintă culoarea liniei. Aceasta este RGBA culoare (o extensie a culorii RGB cu un canal Alpha care reprezintă opacitatea).

În cele din urmă, putem vedea imaginea utilizând instrucțiunea: img.show ().

Punându-le pe toți împreună

Acum că am acoperit blocurile programului nostru, să punem totul împreună și să vedem cum arată scriptul nostru:

de la importul imaginii PIL, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img) data = ['4', '5', ' 83 ',' 93 ',' 2 ',' 54 ',' 84 ',' 100 ',' 64 '] x = 0 pentru i în date: x = x + 30 y = 200 - int (i) draw_img. linia (x, 200, x, y), lățimea = 10, umplerea = (255,0,0,255)) img.show ()

producție

Acum vine partea interesantă, rezultatul scenariului de mai sus. Dacă rulați programul, ar trebui să aveți ceva similar cu următorul:

Am decojit partea de sus a imaginii în acest instantaneu; ar trebui să arate mai mare la ieșirea originală.

Concluzie

După cum am văzut din acest tutorial, pentru a obține mai mult control asupra unor sarcini obișnuite, cum ar fi desenarea unui grafic pentru unele date, ar fi o modalitate de a utiliza un limbaj de programare (adică Python). 

Cu toate acestea, nu trebuie întotdeauna să efectuăm astfel de sarcini de la zero; putem beneficia de bibliotecile definite de utilizator, cum ar fi Pillow, în tutorialul nostru. Utilizarea unei astfel de biblioteci ne-a făcut ușor să desenăm graficul de bare, iar utilizarea lui Python ne-a dat controlul și flexibilitatea utilizării unor trucuri pentru a scoate graficul așa cum vrem.

Cod