Hvordan konvertere en CSV-fil til en graf i Python

Utvikle programmerer Team Development Nettsteddesign og kodingsteknologier som jobber på programvareselskapets kontor

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.