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.