De meeste database- en spreadsheet-toepassingen kunnen eenvoudig uitvoeren tabel gegevens in de vorm van CSV (comma - gescheiden - waarden ) bestanden . Terwijl CSV -bestanden zijn handig vanwege hun eenvoud en draagbaarheid , ze niet effectief voor het weergeven of analyseren van grote hoeveelheden gegevens . Met Python en een externe bibliotheek code , matplotlib , kan een programmeur deze beperking te overwinnen door het omzetten van de ruwe CSV- gegevens in een leesbare , visueel aantrekkelijk grafiek geschikt voor web of print publicatie . Wat je nodig hebt Python scripting omgeving Matplotlib , 2D plotten Python library CSV-bestand met twee kolommen met numerieke gegevens Tekst editor Toon Meer Aanwijzingen Rendering een CSV-bestand als een grafiek Met behulp van Python en matplotlib 1 Maak een eenvoudig CSV-bestand te testen . Een voorbeeld kan er zo uitzien : 1,22,33,84,135,186,217,137.5,42.5,4.3 Import Pagina 2 van de nodige python libraries in je code bestand : importeren matplotlib.pyplot als pltimport csvimport sys 3 Open het CSV-bestand en maak een lezer object van. Verklaren variabelen aan de boven-en ondergrenzen voor de x -en y-as waarden van de grafiek te definiëren : csv_reader = csv.reader (open ( ' test.csv ' ) ) BigX = float ( - sys.maxint - 1 ) Bigy = float ( - sys.maxint -1 ) kleinX = float ( sys.maxint ) smally = float ( sys.maxint ) 4 itereren over elke rij in de lezer object opslaan van elk rij als een hoekpunt in een vertex array. In dezelfde lus vergelijken de x -en y- waarden om de boven-en ondergrenzen slaan . Sorteer de vertex array en vervolgens lus door het weer . Dit keer slaan de gesorteerde x -en y- waarden in verschillende arrays : verts = [ ] voor rij in csv_reader : verts.append ( rij) als float ( rij [ 0 ] ) > BigX : BigX = float ( row [ 0 ] ) als float ( rij [ 1 ] ) > Bigy : Bigy = float ( rij [ 1 ] ) als float ( rij [ 0 ] ) < kleinX : kleinX = float ( rij [ 0 ] ) als float ( rij [ 1 ] ) < smally : smally = float ( rij [ 1 ] ) verts.sort ( ) x_arr = [ ] y_arr = [ ] voor vert in verts : x_arr.append ( vert [ 0 ] ) y_arr.append ( vert [ 1 ] ) op Twitter 5 Maak een FigureCanvas object met behulp van de ingevoerde matplotlib pyplot object . Voeg assen van de grafiek aan de FigureCanvas door te bellen naar de functie add_axes en passeren het een array van waarden in de vorm van : links, onder , breedte, hoogte . Deze waarden bepalen waar de grafiek wordt op het doek --- ze kunnen variëren 0,0-1,0 fig = plt.figure ( ) = ax fig.add_axes ( [ 0.1 , 0.1 , 0.8 , 0.8 ] ) 6 Format de grafiek labels toe te voegen en het definiëren van de minimale en maximale waarden voor elke as : ax.set_xlabel ( ' x data ' ) ax.set_ylabel ( 'y -gegevens ' ) ax.set_xlim ( kleinX , BigX ) ax.set_ylim ( smally , Bigy ) op Twitter Perceel 7 de grafiek door het passeren van de twee arrays met de x -en y-waarden opgehaald uit het CSV-bestand . Pas de lijn perceel door het passeren in facultatieve waarden zoals lijnkleur ( kleur ) of lijndikte ( lw ) . Geven de afgewerkte grafiek door te bellen naar de show methode om een venster te openen en opslaan van het beeld door te bellen savefig naar een bitmap-bestand op schijf te maken : ax.plot ( x_arr , y_arr , kleur = ' blauw ' , lw = 2 ) plt.show ( ) fig.savefig ( ' test.png ' ) op Twitter
|