A Pandák eddig is segítettek bennünket az Adat-előfeldolgozás fázisában. Bár az egyik esetben a hisztogramok létrehozása során a Pandas egy másik modulját is felhasználtuk – plotting
.
Eddig szándékosan kerültük, mert a korábbi bevezetése több kérdést vetne fel, mint amennyi választ adott. Mégpedig Pandák és a A Matplotlib annyira gyakori és mindenütt jelenlévő duó volt, hogy a Pandas elkezdte integrálni a Matplotlib funkcióit. Azt súlyosan a Matplotlib-re támaszkodik minden tényleges ábrázolás elvégzéséhez, és sok Matplotlib függvényt találhat a forráskódban. Alternatív megoldásként más háttérprogramokat is használhat a nyomtatáshoz, mint pl Teljességgel és a Bokeh.
A Pandas azonban bemutat néhány olyan cselekményt is nem a Matplotlib szabványos cselekménytípusainak egy része, mint pl KDE-k, Andrews Curves, Bootstrap Plots és a Scatter Mátrixok.
A plot()
egy Panda funkciója DataFrame
által meghatározott háttérprogramot használja plotting.backend
, és attól függően, hogy kind
argumentum – diagramot generál az adott könyvtár felhasználásával. Mivel ezek közül sok átfedi egymást, nincs értelme olyan cselekménytípusokat lefedni, mint pl line
, bar
, hist
és a scatter
. Nagyjából ugyanazokat a terveket fogják előállítani ugyanazzal a kóddal, mint amit eddig a Matplotlib-el csináltunk.
Csak röviden tekintjük át a plot()
funkciót, mivel a mögöttes mechanizmust eddig feltárták. Ehelyett összpontosítsunk néhány olyan cselekményre, amelyet mi nem tud már készen áll a Matplotlib-re.
Ez egy nagyon rövid fejezet lesz, mivel a Pandák ábrázolási és vizualizációs képességei elhalványulnak a Matplotlibhez képest – de még mindig hasznos tudni ezek közül néhányat, valamint tisztában lenni azzal a képességgel, hogy pl. DataFrame
s közvetlenül.
A DataFrame.plot() Funkció
A plot()
függvény elfogadja x
és a y
funkciók, és a kind
érv. Alternatív megoldásként, hogy elkerüljük a kind
érv, hívhatod is DataFrame.plot.kind()
helyett, és adja át a x
és a y
jellemzők.
Az elfogadott értékek a kind
érvek a következők: line
, bar
, barh
(vízszintes sáv), hist
, box
, kde
, density
(szinonimája a kde
), area
, pie
, scatter
és a hexbin
(hasonlóan a hőtérképhez).
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()
Ahelyett, hogy a Series
például a Matplotlib esetében – elég megadni a oszlopnevek, és mivel Ön hívja a plot()
funkció a DataFrame
amit vizualizál, a Pandák könnyen leképezhetik ezeket a karakterlánc-értékeket a megfelelő oszlopnevekre.
Ezen hívások mindegyike újat hoz létre Figure
példányt, és ábrázolja rajta a megfelelő értékeket:
Több tengely ábrázolása ugyanazon Figure
, készíthetsz a Figure
és egy vagy több Axes
keresztül plt.subplots()
és rendelje hozzá a megfelelőt Axes
hoz ax
mindegyik érve plot.plot_type()
hívás:
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()
Néhány standard argumentum, mint például a rotation
érvek valójában különböznek a plot()
hívásokat. Például, rotation
-re rövidül rot
. Ez kissé bonyolulttá teszi csak válts a Matplotlib és a Pandas között, mivel nagy valószínűséggel a dokumentációs oldalakra kerülsz, csak ellenőrizve, hogy melyik argumentum alkalmazható és melyik nem.
Most ahelyett, hogy újat hozna létre Figure
or Axes
Például ezeknek a parcelláknak mindegyike a megfelelő helyen lesz elhelyezve Axes
esetek, amelyekkel elláttuk őket:
Általánosságban elmondható, hogy a Pandákkal való ábrázolás kényelmes és gyors – de még így is, a Bar Plots, Line Plots és Box Plots ábrázolásához valószínűleg érdemes a Matplotlib-et használni. A Pandák elkerülhetetlenül ezt a mögöttes motort használják, és több testreszabási lehetőséggel is rendelkezik, és nem kell emlékeznie egy új argumentumkészletre, amelyet a Pandas cselekményekkel használhat.
Ennek ellenére néhány telek esetében érdemes előnyben részesíteni pandák, mivel ezeket manuálisan kell elkészíteni a Matplotlibben, és némelyiket olyan nehéz elkészíteni, hogy nem éri meg a fáradságot, mint például a KDE sorok.
pandák ábrázolás Modulok
Mit DataFrame
A vizualizációs kínálat nem túl új számunkra. Az általuk nevezett mögöttes modul azonban pandas.plotting
csinál. Az plotting
modulnak számos olyan funkciója van, amelyeket használhatunk, mint pl autocorrelation_plot()
, bootstrap_plot()
és scatter_matrix()
.
Ezek mindegyike elfogadja vagy a Series
vagy DataFrame
, attól függően, hogy milyen típusú vizualizációt hoznak létre, valamint bizonyos paramétereket a nyomtatási specifikáció és a stílus céljára.
Bootstrap Plot
bootstrapping egy adathalmaz véletlenszerű mintavételének (cseréjével) folyamata, és kiszámítják a pontosság mértékét, mint pl. előítélet, variancia és a megbízhatósági intervallumok a véletlenszerű mintákhoz. A „cserével” a gyakorlatban azt jelenti, hogy minden véletlenszerűen kiválasztott elem újra kiválasztható. Csere nélkül azt jelenti, hogy minden véletlenszerűen kiválasztott elem után eltávolítjuk a következő minta készletéből.
A Bootstrap PlotA Pandas által létrehozott , a minta alapján egy adatkészlet átlagos, medián és középső statisztikáit bootstrapálja size
, amely után a cselekmény a következőn keresztül jelenik meg plt.show()
. A következő alapértelmezett argumentumai size
és a samples
faliórái 50
és a 500
illetőleg.
Ez azt jelenti, hogy egy jellemzőnél mintát veszünk 50
értékeket. Ezután egy 50 elemből álló részmintát generálunk (szintetikus adatok) ezekhez az 50 értékekhez, és kiszámítjuk az összefoglaló statisztikát (átlag/medián/középtartomány). Ez a folyamat megismétlődik 500
alkalommal, így végül 500 összefoglaló statisztikát kapunk:
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()
Autokorrelációs diagram
Autokorrelációs diagramok az adatok véletlenszerűségének, idősoros adatok ellenőrzésére szolgálnak. Többszörös autokorrelációk különböző időbélyegekre számítanak ki, és ha az adatok valóban véletlenszerűek - a korreláció közel nulla lesz. Ha nem, a korreláció nagyobb lesz, mint nulla.
Ábrázoljunk két autokorrelációs diagramot – az egyiket a miénkkel Érték funkció, és egy a Series
tele véletlenszerű értékekkel:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()
Az autokorrelációs diagram a random_series
körül kellene forognia 0
, mivel ez véletlenszerű adat, míg a diagram a Value
a funkció nem:
Érdemes megjegyezni, hogy az autokorreláció egyet mér forma a véletlenszerűség, mivel nem korrelált, de nem véletlenszerű adatok léteznek. Ha nem véletlenszerű, de nincs szignifikáns korrelációja – az Autokorrelációs diagram azt jelzi, hogy az adatok véletlenszerűek.
Scatter Mátrixok
Scatter Mátrixok telek a rács Scatter Plots az összes funkcióhoz az összes tulajdonsághoz képest. Mivel ez elkerülhetetlenül minden tulajdonságot önmagával is összehasonlít – a átlós ahol ez megtörténik, általában a helyettesíti hisztogram ennek a tulajdonságnak, nem pedig egy szóródiagramnak. Scatter Mátrixok más néven Páros telkek, a Seaborn pedig a pairplot()
funkció csak erre.
A scatter_matrix()
függvény elfogadja a DataFrame
és létrehoz egy Scatter Matrixot az összes numerikus jellemzőjéhez, és visszaadja a 2D tömböt. Axes
példányok, amelyek a Scatter Matrixot tartalmazzák. Ha bármit módosítani szeretne rajtuk, ismételje meg őket:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()
Ez egy meglehetősen nagy szórómátrixot eredményez az összes jellemzőből az összes többi jellemzővel szemben:
Be is lehet lépni a diagonal
érv, amely elfogadja 'hist'
or 'kde'
annak megadásához, hogy milyen típusú eloszlási diagramot szeretne ábrázolni az átlón, valamint alpha
, amely megadja a markerek áttetszőségét a Scatter Plots-ban.
- 100
- Rólunk
- Minden termék
- már
- Másik
- érvek
- körül
- hogy
- Bit
- Doboz
- hívás
- képességek
- Fejezet
- ellenőrzése
- kód
- Oszlop
- Közös
- ország
- Pár
- létrehozása
- dátum
- különböző
- terjesztés
- európai
- európai unió
- példa
- Funkció
- Jellemzők
- Összpontosít
- funkció
- funkcionalitás
- általános
- generál
- HTTPS
- IT
- ismert
- nagy
- nagyobb
- könyvtár
- vonal
- térkép
- Mátrix
- a legtöbb
- ugyanis
- nevek
- Közel
- ajánlat
- Ajánlatok
- Opciók
- Más
- fázis
- medence
- folyamat
- gyárt
- ad
- célokra
- emel
- RE
- helyébe
- Eredmények
- Visszatér
- Mondott
- kiválasztott
- készlet
- rövid
- jelentős
- hasonló
- So
- forráskód
- leírás
- kezdődött
- statisztika
- The Source
- Keresztül
- unió
- us
- érték
- megjelenítés
- Mit
- Wikipedia
- érdemes
- X
- év
- nulla