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.