Sådan konverteres en CSV-fil til en graf i Python

Udvikling af programmør Teamudvikling Websitedesign og kodningsteknologier, der arbejder på softwarefirmaets kontor

CSV-filer er praktiske på grund af deres enkelhed og portabilitet, de er ineffektive til at vise eller analysere store mængder data; dog viser de ikke visuelt dataene.

Billedkredit: SARINYAPINNGAM/iStock/GettyImages

De fleste database- og regnearksapplikationer kan nemt udlæse tabeldata i form af CSV-filer (kommaseparerede værdier). Mens CSV-filer er praktiske på grund af deres enkelhed og portabilitet, er de ineffektive til at vise eller analysere store mængder data. For at overvinde denne begrænsning kan en programmør bruge Python-programmeringssproget og matplotlib til at plotte data fra en CSV-fil og skab en læsbar, visuelt attraktiv graf, der egner sig til web eller print offentliggørelse.

Forberedelse til plotning af CSV-data

Før du rent faktisk plotter CSV-filen i Python, vil du gerne sikre dig, at du har alle de nødvendige værktøjer og oprette en testfil. Dette inkluderer at have Python og nødvendige biblioteker installeret samt at have en CSV-fil, der indeholder to kolonner med numeriske data.

Dagens video

Trin 1: Opret testfil

Først skal du åbne din teksteditor og oprette en simpel CSV-fil til test. Et eksempel kan se sådan ud:

1,2 2,3 3,8 4,13 5,18 6,21 7,13 7.5,4 2.5,4.3

Trin 2: Importer nødvendige biblioteker

Nu er du klar til at importere de nødvendige python-biblioteker til din kodefil med denne kodelinje:

importer matplotlib.pyplot som plt importer csv import sys

Plot Graph i Python fra CSV

Med din forberedelse af vejen, kan du nu komme i gang med faktisk at bruge Python til at tegne en graf fra en CSV-fil.

Trin 1: Opret læseobjekt

Åbn CSV-filen, og opret et læseobjekt fra den. Deklarer variabler for at definere de øvre og nedre grænser for x- og y-akseværdierne for 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)

Trin 2: Gentag over rækker

Gentag over hver række, der er indeholdt i læseobjektet, og gemmer hver række som et vertex i et vertex-array. Sammenlign x- og y-værdierne i samme sløjfe for at gemme deres øvre og nedre grænser. Sorter vertex-arrayet og løkke derefter gennem det igen. Denne gang gemmes de sorterede x- og y-værdier i separate arrays:

verts = [] for række i csv_reader: verts.append (række) if float (row[0]) > bigx: bigx = float (row[0]) if float (row[1]) > bigy: bigy = float ( række[1]) hvis flyde (række[0]) < smallx: smallx = float (row[0]) if float (row[1]) < smally: smally = float (row[1]) verts.sort() x_arr = [] y_arr = [] for verts in verts: x_arr .append (vert[0]) y_arr.append (vert[1])

Trin 3: Lav et FigureCanvas-objekt

Opret et FigureCanvas-objekt ved hjælp af det importerede matplotlib-pyplot-objekt. Tilføj grafens akser til FigurCanvas ved at kalde funktionen add_axes og sende den en række værdier i form af: venstre, bund, bredde, højde. Disse værdier definerer, hvor grafen er placeret på lærredet - de kan variere fra 0,0 til 1,0:

fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

Trin 4: Formater grafen

Formater grafen ved at tilføje etiketter og definere minimum- og maksimumværdier for hver akse:

ax.set_xlabel('x data') ax.set_ylabel('y data') ax.set_xlim (smallx, bigx) ax.set_ylim (lille, bigy)

Trin 5: Plot grafen

Plot grafen ved at indsætte de to arrays, der indeholder x- og y-værdierne hentet fra CSV-filen. Tilpas linjeplottet ved at indsætte valgfrie værdier såsom linjefarve (farve) eller linjebredde (lw). Vis den færdige graf ved at kalde show-metoden for at åbne et vindue og gemme billedet ved at kalde savefig for at oprette en bitmap-fil på disken:

ax.plot (x_arr, y_arr, color='blue', lw=2) plt.show() fig.savefig('test.png')

Vigtige overvejelser for filer

For at oprette filer, som Python-fortolkeren kan læse, skal du bruge en ascii-tekst- eller kodeeditor, der kun opretter tekstfiler. Du kan gemme grafbilleder i mange forskellige billedformater, herunder: png, pdf, ps og svg.

Se Matplotlib-dokumentationen

Nogle aspekter af matplotlib-bibliotekets installation og funktionalitet varierer på forskellige computerplatforme. Læs dokumentationen omhyggeligt. Biblioteket kan vise numerisk information på en lang række måder og kan tilpasses fint. En grundig gennemlæsning af dokumentationen vil være nødvendig for at blive dygtig.