CSV-filer er nyttige på grunn av deres enkelhet og portabilitet, de er ineffektive for å vise eller analysere store datamengder; imidlertid viser de ikke dataene visuelt.
Bildekreditt: SARINYAPINNGAM/iStock/GettyImages
De fleste database- og regnearkapplikasjoner kan enkelt sende ut tabelldata i form av CSV-filer (kommaseparerte verdier). Mens CSV-filer er nyttige på grunn av sin enkelhet og portabilitet, er de ineffektive for å vise eller analysere store datamengder. For å overvinne denne begrensningen kan en programmerer bruke programmeringsspråket Python og matplotlib for å plotte data fra en CSV-fil og lag en lesbar, visuelt attraktiv graf som passer for nett eller utskrift utgivelse.
Forberedelse for plotting av CSV-data
Før du faktisk plotter CSV-filen i Python, vil du sørge for at du har alle nødvendige verktøy og lage en testfil. Dette inkluderer å ha Python og nødvendige biblioteker installert, samt å ha en CSV-fil som inneholder to kolonner med numeriske data.
Dagens video
Trinn 1: Opprett testfil
Først åpner du tekstredigeringsprogrammet og lager en enkel CSV-fil for testing. Et eksempel kan se slik ut:
1,2 2,3 3,8 4,13 5,18 6,21 7,13 7.5,4 2.5,4.3
Trinn 2: Importer nødvendige biblioteker
Nå er du klar til å importere de nødvendige python-bibliotekene til kodefilen din med denne kodelinjen:
importer matplotlib.pyplot som plt importer csv import sys
Plot Graph i Python fra CSV
Med forberedelsene dine ute av veien, kan du nå begynne å bruke Python til å tegne en graf fra en CSV-fil.
Trinn 1: Lag leserobjekt
Åpne CSV-filen og lag et leserobjekt fra den. Deklarer variabler for å definere øvre og nedre grenser for x- og y-akseverdiene til grafen:
csv_reader = csv.reader (open('test.csv')) bigx = float(-sys.maxint -1) bigy = float(-sys.maxint -1) smallx = float (sys.maxint) smally = float (sys) .maxint)
Trinn 2: Iterer over rader
Iterer over hver rad som finnes i leserobjektet, og lagre hver rad som et toppunkt i en vertex-array. Sammenlign x- og y-verdiene i samme sløyfe for å lagre deres øvre og nedre grenser. Sorter toppunktarrayen og sløyfe deretter gjennom den igjen. Denne gangen lagrer du de sorterte x- og y-verdiene i separate matriser:
verts = [] for rad i csv_reader: verts.append (rad) if float (rad[0]) > bigx: bigx = float (rad[0]) if float (rad[1]) > bigy: bigy = float ( rad[1]) hvis flyte (rad[0]) < smallx: smallx = float (rad[0]) if float (rad[1]) < smally: smally = float (rad[1]) verts.sort() x_arr = [] y_arr = [] for vert i verts: x_arr .append (vert[0]) y_arr.append (vert[1])
Trinn 3: Lag et FigureCanvas-objekt
Lag et FigureCanvas-objekt ved å bruke det importerte matplotlib-pyplot-objektet. Legg til grafens akser til FigureCanvas ved å kalle funksjonen add_axes og gi den en rekke verdier i form av: venstre, bunn, bredde, høyde. Disse verdiene definerer hvor grafen er plassert på lerretet – de kan variere fra 0,0 til 1,0:
fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
Trinn 4: Formater grafen
Formater grafen ved å legge til etiketter og definere minimums- og maksimumsverdier for hver akse:
ax.set_xlabel('x data') ax.set_ylabel('y data') ax.set_xlim (smallx, bigx) ax.set_ylim (small, bigy)
Trinn 5: Plott grafen
Plott grafen ved å sende inn de to matrisene som inneholder x- og y-verdiene hentet fra CSV-filen. Tilpass linjeplottet ved å legge inn valgfrie verdier som linjefarge (farge) eller linjebredde (lw). Vis den ferdige grafen ved å kalle show-metoden for å åpne et vindu og lagre bildet ved å ringe savefig for å lage en bitmap-fil på disken:
ax.plot (x_arr, y_arr, color='blue', lw=2) plt.show() fig.savefig('test.png')
Viktige hensyn for filer
For å lage filer som Python-tolken kan lese, må du bruke en ascii-tekst- eller koderedigerer som bare lager tekstfiler. Du kan lagre grafbilder i mange forskjellige bildeformater, inkludert: png, pdf, ps og svg.
Se Matplotlib-dokumentasjonen
Noen aspekter av matplotlib-bibliotekets installasjon og funksjonalitet varierer på forskjellige datamaskinplattformer. Les dokumentasjonen nøye. Biblioteket kan vise numerisk informasjon på et stort antall måter og kan tilpasses fint. En grundig lesing av dokumentasjonen vil være nødvendig for å bli dyktig.