Soubory CSV jsou užitečné pro svou jednoduchost a přenositelnost, jsou neúčinné pro zobrazení nebo analýzu velkého množství dat; data však nezobrazují vizuálně.
Kredit obrázku: SARINYAPINNGAM/iStock/GettyImages
Většina databázových a tabulkových aplikací může pohodlně vydávat tabulková data ve formě souborů CSV (comma-separated-values). Soubory CSV jsou sice praktické díky své jednoduchosti a přenositelnosti, ale pro zobrazení nebo analýzu velkého množství dat jsou neúčinné. K překonání tohoto omezení může programátor k vykreslení použít programovací jazyk Python a matplotlib data ze souboru CSV a vytvořit čitelný, vizuálně atraktivní graf vhodný pro web nebo tisk vydání.
Příprava na vynesení dat CSV
Než skutečně vykreslíte soubor CSV v Pythonu, budete se chtít ujistit, že máte všechny potřebné nástroje, a vytvořit testovací soubor. To zahrnuje instalaci Pythonu a nezbytných knihoven a také soubor CSV, který obsahuje dva sloupce číselných dat.
Video dne
Krok 1: Vytvořte testovací soubor
Nejprve otevřete textový editor a vytvořte jednoduchý soubor CSV pro testování. Ukázka může vypadat takto:
1,2 2,3 3,8 4,13 5,18 6,21 7,13 7.5,4 2.5,4.3
Krok 2: Importujte potřebné knihovny
Nyní jste připraveni importovat potřebné pythonové knihovny do souboru kódu pomocí tohoto řádku kódu:
import matplotlib.pyplot as plt import csv import sys
Vykreslit graf v Pythonu z CSV
S vaší přípravou z cesty můžete nyní začít skutečně používat Python ke kreslení grafu ze souboru CSV.
Krok 1: Vytvořte objekt čtečky
Otevřete soubor CSV a vytvořte z něj objekt čtečky. Deklarováním proměnných definujte horní a dolní mez hodnot na ose x a y grafu:
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)
Krok 2: Iterujte přes řádky
Iterujte přes každý řádek obsažený v objektu čtečky a uložte každý řádek jako vrchol v poli vrcholů. Ve stejné smyčce porovnejte hodnoty x a y za účelem uložení jejich horní a dolní meze. Seřaďte pole vertexů a poté je znovu projděte. Tentokrát uložte seřazené hodnoty x a y do samostatných polí:
verts = [] pro řádek v csv_reader: verts.append (řádek) if float (řádek[0]) > bigx: bigx = float (řádek[0]) if float (řádek[1]) > bigy: bigy = float ( řádek[1]), pokud plovoucí (řádek[0]) < smallx: smallx = float (řádek[0]) if float (řádek[1]) < smally: smally = float (řádek[1]) verts.sort() x_arr = [] y_arr = [] pro vert in verts: x_arr .append (vert[0]) y_arr.append (vert[1])
Krok 3: Vytvořte objekt FigureCanvas
Vytvořte objekt FigureCanvas pomocí importovaného objektu pyplot matplotlib. Přidejte osy grafu do FigureCanvas voláním funkce add_axes a předáním pole hodnot ve tvaru: left, bottom, width, height. Tyto hodnoty definují, kde je graf umístěn na plátně — mohou se pohybovat od 0,0 do 1,0:
fig = plt.figure() ax = fig.add_axes([0,1, 0,1, 0,8, 0,8])
Krok 4: Naformátujte graf
Naformátujte graf přidáním popisků a definováním minimální a maximální hodnoty pro každou osu:
ax.set_xlabel('x data') ax.set_ylabel('y data') ax.set_xlim (smallx, bigx) ax.set_ylim (malý, velký)
Krok 5: Nakreslete graf
Vykreslete graf vložením dvou polí obsahujících hodnoty x a y načtené ze souboru CSV. Přizpůsobte čárový graf předáním volitelných hodnot, jako je barva čáry (color) nebo šířka čáry (lw). Zobrazte hotový graf voláním metody show pro otevření okna a uložení obrázku voláním savefig pro vytvoření bitmapového souboru na disku:
ax.plot (x_arr, y_arr, color='modrá', lw=2) plt.show() fig.savefig('test.png')
Důležité aspekty pro soubory
Chcete-li vytvořit soubory, které může interpret Pythonu číst, musíte použít textový nebo kódový editor ASCII, který vytváří pouze textové soubory. Obrázky grafů můžete ukládat v mnoha různých formátech včetně: png, pdf, ps a svg.
Prostudujte si dokumentaci Matplotlib
Některé aspekty instalace a funkčnosti knihovny matplotlib se na různých počítačových platformách liší. Přečtěte si pozorně dokumentaci. Knihovna může zobrazovat číselné informace velkým množstvím způsobů a lze ji jemně přizpůsobit. K tomu, abyste se zdokonalili, bude nutné důkladné prostudování dokumentace.