CSV-bestanden zijn handig vanwege hun eenvoud en draagbaarheid, ze zijn niet effectief voor het weergeven of analyseren van grote hoeveelheden gegevens; ze geven de gegevens echter niet visueel weer.
Afbeelding tegoed: SARINYAPINNGAM/iStock/GettyImages
De meeste database- en spreadsheetprogramma's kunnen gemakkelijk tabelgegevens uitvoeren in de vorm van CSV-bestanden (comma-separated-values). Hoewel CSV-bestanden handig zijn vanwege hun eenvoud en draagbaarheid, zijn ze niet effectief voor het weergeven of analyseren van grote hoeveelheden gegevens. Om deze beperking te overwinnen, kan een programmeur de programmeertaal Python en matplotlib gebruiken om te plotten gegevens uit een CSV-bestand en maak een leesbare, visueel aantrekkelijke grafiek die geschikt is voor web of print publicatie.
Voorbereiding voor het plotten van CSV-gegevens
Voordat u het CSV-bestand daadwerkelijk in Python plot, moet u ervoor zorgen dat u over alle benodigde tools beschikt en een testbestand maakt. Dit omvat het installeren van Python en de benodigde bibliotheken en het hebben van een CSV-bestand dat twee kolommen met numerieke gegevens bevat.
Video van de dag
Stap 1: Testbestand maken
Open eerst uw teksteditor en maak een eenvoudig CSV-bestand om te testen. Een voorbeeld kan er als volgt uitzien:
1,2 2,3 3,8 4,13 5,18 6,21 7,13 7.5,4 2.5,4.3
Stap 2: Importeer noodzakelijke bibliotheken
Nu ben je klaar om de benodigde python-bibliotheken in je codebestand te importeren met deze regel code:
importeer matplotlib.pyplot als plt import csv import sys
Plot Graph in Python vanuit CSV
Nu je voorbereiding achter de rug is, kun je nu aan de slag met Python om een grafiek uit een CSV-bestand te tekenen.
Stap 1: Lezerobject maken
Open het CSV-bestand en maak er een reader-object van. Declareer variabelen om de boven- en ondergrenzen voor de x- en y-aswaarden van de grafiek te definiëren:
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)
Stap 2: Herhaal rijen
Herhaal elke rij in het lezerobject en sla elke rij op als een hoekpunt in een hoekpuntarray. Vergelijk in dezelfde lus de x- en y-waarden om hun boven- en ondergrenzen op te slaan. Sorteer de vertex-array en loop er opnieuw doorheen. Sla deze keer de gesorteerde x- en y-waarden op in afzonderlijke arrays:
verts = [] voor rij in csv_reader: verts.append (rij) if float (row [0]) > bigx: bigx = float (row [0]) if float (rij [1]) > bigy: bigy = float ( rij[1]) indien zwevend (rij[0]) < smallx: smallx = float (rij[0]) if float (rij[1]) < smally: smally = float (rij[1]) verts.sort() x_arr = [] y_arr = [] voor vert in verts: x_arr .toevoegen (vert[0]) y_arr.append (vert[1])
Stap 3: Maak een FigureCanvas-object
Maak een FigureCanvas-object met behulp van het geïmporteerde matplotlib pyplot-object. Voeg de assen van de grafiek toe aan FigureCanvas door de functie add_axes aan te roepen en deze een reeks waarden door te geven in de vorm van: left, bottom, width, height. Deze waarden bepalen waar de grafiek op het canvas wordt geplaatst — ze kunnen variëren van 0,0 tot 1,0:
fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
Stap 4: Formatteer de grafiek
Maak de grafiek op door labels toe te voegen en de minimum- en maximumwaarden voor elke as te definiëren:
ax.set_xlabel('x data') ax.set_ylabel('y data') ax.set_xlim (smallx, bigx) ax.set_ylim (smally, bigy)
Stap 5: Plot de grafiek
Plot de grafiek door de twee arrays door te geven die de x- en y-waarden bevatten die zijn opgehaald uit het CSV-bestand. Pas de lijnplot aan door optionele waarden door te geven, zoals lijnkleur (kleur) of lijnbreedte (lw). Geef de voltooide grafiek weer door de show-methode aan te roepen om een venster te openen en sla de afbeelding op door savefig aan te roepen om een bitmapbestand op schijf te maken:
ax.plot (x_arr, y_arr, color='blue', lw=2) plt.show() fig.savefig('test.png')
Belangrijke overwegingen voor bestanden
Om bestanden te maken die de Python-interpreter kan lezen, moet u een ascii-tekst- of code-editor gebruiken die alleen tekstbestanden maakt. U kunt grafiekafbeeldingen in veel verschillende afbeeldingsindelingen opslaan, waaronder: png, pdf, ps en svg.
Raadpleeg de Matplotlib-documentatie
Sommige aspecten van de installatie en functionaliteit van de matplotlib-bibliotheek variëren op verschillende computerplatforms. Lees de documentatie aandachtig door. De bibliotheek kan numerieke informatie op een groot aantal manieren weergeven en kan nauwkeurig worden aangepast. Een grondige lezing van de documentatie zal nodig zijn om bekwaam te worden.