Hur man konverterar en CSV-fil till en graf i Python

Utveckla programmerare Team Development Webbplatsdesign och kodningsteknik som arbetar på mjukvaruföretagets kontor

CSV-filer är praktiska på grund av sin enkelhet och portabilitet, de är ineffektiva för att visa eller analysera stora mängder data; dock visar de inte data visuellt.

Bildkredit: SARINYAPINNGAM/iStock/GettyImages

De flesta databas- och kalkylbladsprogram kan enkelt mata ut tabelldata i form av CSV-filer (kommaseparerade värden). Även om CSV-filer är praktiska på grund av sin enkelhet och portabilitet, är de ineffektiva för att visa eller analysera stora mängder data. För att övervinna denna begränsning kan en programmerare använda programmeringsspråket Python och matplotlib för att plotta data från en CSV-fil och skapa en läsbar, visuellt tilltalande graf som lämpar sig för webb eller tryck offentliggörande.

Förberedelse för plottning av CSV-data

Innan du faktiskt ritar CSV-filen i Python, vill du se till att du har alla nödvändiga verktyg och skapa en testfil. Detta inkluderar att ha Python och nödvändiga bibliotek installerade samt att ha en CSV-fil som innehåller två kolumner med numerisk data.

Dagens video

Steg 1: Skapa testfil

Öppna först din textredigerare och skapa en enkel CSV-fil för testning. Ett prov kan se ut så här:

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

Steg 2: Importera nödvändiga bibliotek

Nu är du redo att importera de nödvändiga pythonbiblioteken till din kodfil med denna kodrad:

importera matplotlib.pyplot som plt importera csv import sys

Rita graf i Python från CSV

Med din förberedelse ur vägen kan du nu börja använda Python för att rita en graf från en CSV-fil.

Steg 1: Skapa Reader Object

Öppna CSV-filen och skapa ett läsarobjekt från den. Deklarera variabler för att definiera de övre och nedre gränserna för x- och y-axelvärdena i 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)

Steg 2: Iterera över rader

Iterera över varje rad som finns i läsarobjektet och lagra varje rad som en vertex i en vertexarray. Jämför x- och y-värdena i samma slinga för att lagra deras övre och nedre gränser. Sortera vertexarrayen och gå sedan igenom den igen. Den här gången lagrar du de sorterade x- och y-värdena i separata arrayer:

verts = [] för 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]) om flyta (rad[0]) < smallx: smallx = float (rad[0]) if float (rad[1]) < smally: smally = float (rad[1]) verts.sort() x_arr = [] y_arr = [] för vert in verts: x_arr .append (vert[0]) y_arr.append (vert[1])

Steg 3: Gör ett FigureCanvas-objekt

Skapa ett FigureCanvas-objekt med det importerade matplotlib-pyplotobjektet. Lägg till grafens axlar till FigureCanvas genom att anropa funktionen add_axes och skicka den en uppsättning värden i form av: vänster, botten, bredd, höjd. Dessa värden definierar var grafen placeras på arbetsytan – de kan variera från 0,0 till 1,0:

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

Steg 4: Formatera grafen

Formatera grafen genom att lägga till etiketter och definiera lägsta och högsta värden för varje axel:

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

Steg 5: Rita grafen

Rita grafen genom att skicka in de två arrayerna som innehåller x- och y-värdena hämtade från CSV-filen. Anpassa linjediagrammet genom att skicka in valfria värden som linjefärg (färg) eller linjebredd (lw). Visa den färdiga grafen genom att anropa visa-metoden för att öppna ett fönster och lagra bilden genom att anropa savefig för att skapa en bitmappsfil på disken:

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

Viktiga överväganden för filer

För att skapa filer som Python-tolken kan läsa måste du använda en ascii-text- eller kodredigerare som bara skapar textfiler. Du kan lagra grafbilder i många olika bildformat inklusive: png, pdf, ps och svg.

Se Matplotlib-dokumentationen

Vissa aspekter av matplotlib-bibliotekets installation och funktionalitet varierar på olika datorplattformar. Läs dokumentationen noggrant. Biblioteket kan visa numerisk information på ett stort antal sätt och kan finjusteras. En noggrann läsning av dokumentationen kommer att krävas för att bli skicklig.