Pandas on auttanut meitä toistaiseksi tietojen esikäsittelyvaiheessa. Vaikka olemme yhdessä tapauksessa käyttäneet histogrammeja luodessaan myös toista Pandasin moduulia – plotting
.
Olemme toistaiseksi tarkoituksellisesti välttäneet sitä, koska sen ottaminen käyttöön aikaisemmin herättäisi enemmän kysymyksiä kuin vastaisi. Nimittäin Pandat ja Matplotlib oli niin yleinen, kaikkialla läsnä oleva kaksikko, että Pandas on alkanut integroida Matplotlibin toimintoja. Se raskaasti luottaa Matplotlibiin todellisen piirtämisen tekemisessä, ja monet Matplotlib-funktiot ovat käärittynä lähdekoodiin. Vaihtoehtoisesti voit käyttää piirtämiseen muita taustaohjelmia, kuten Plotly ja Bokeh.
Pandas esittelee meille kuitenkin myös muutaman juonen eivät ole osa Matplotlibin vakiojuontityyppejä, kuten KDE:t, Andrews Curves, Bootstrap Plots ja Sirontamatriisit.
- plot()
Pandan tehtävä DataFrame
käyttää määrittämää taustaohjelmaa plotting.backend
, ja riippuen kind
argumentti – luo kaavion käyttämällä annettua kirjastoa. Koska monet näistä ovat päällekkäisiä – ei ole mitään järkeä kattaa juonityyppejä, kuten line
, bar
, hist
ja scatter
. He tuottavat paljolti samat juonet samalla koodilla kuin olemme tehneet tähän asti Matplotlibin kanssa.
Katsomme vain lyhyesti plot()
koska taustalla olevaa mekanismia on tähän mennessä tutkittu. Sen sijaan keskitytään joihinkin juoneistamme ei voi toimii jo helposti Matplotlibin kanssa.
Tämä on hyvin lyhyt luku, koska Pandan piirustus- ja visualisointiominaisuudet haalistuvat Matplotlibiin verrattuna – mutta on silti hyödyllistä tietää joistakin niistä sekä olla tietoinen kyvystä piirtää DataFrame
s suoraan.
- DataFrame.plot() Toiminto
- plot()
toiminto hyväksyy x
ja y
ominaisuuksia ja a kind
Perustelu. Vaihtoehtoisesti välttääksesi kind
argumentti, voit myös soittaa DataFrame.plot.kind()
sen sijaan ja syötä sisään x
ja y
ominaisuuksia.
Hyväksytyt arvot kind
argumentit ovat: line
, bar
, barh
(vaakasuora viiva), hist
, box
, kde
, density
(synonyymi sanalle kde
), area
, pie
, scatter
ja hexbin
(samanlainen kuin lämpökartta).
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()
Sen sijaan, että tarjoaisit Series
tapauksia, kuten teemme Matplotlibille – riittää, että tarjoamme sarakkeiden nimet, ja koska soitat numeroon plot()
toiminto päällä DataFrame
visualisoimasi, Pandan on helppo yhdistää nämä merkkijonoarvot asianmukaisiin sarakkeiden nimiin.
Jokainen näistä puheluista muodostaa uuden Figure
esimerkki ja piirtää sille sopivat arvot:
Useiden akselien piirtäminen samalle Figure
, voit tehdä a Figure
ja yksi tai useampi Axes
kautta plt.subplots()
ja määritä sopiva Axes
että ax
jokaisen argumentti plot.plot_type()
puhelu:
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()
Jotkut vakioargumenteista, kuten rotation
argumentit ovat itse asiassa erilaisia plot()
puhelut. Esimerkiksi, rotation
on lyhennetty rot
. Tämä tekee siitä hieman hankalaa vaihda vain Matplotlibin ja Pandasin välillä, koska päädyt todennäköisesti dokumentaatiosivuille tarkistamaan, mitä argumentteja voidaan käyttää ja mitä ei.
Nyt sen sijaan, että luot uuden Figure
or Axes
Esimerkiksi jokainen näistä tonteista sijoitetaan sopivaan paikkaan Axes
tapauksissa, joissa olemme toimittaneet heille:
Yleisesti ottaen piirtäminen Pandalla on kätevää ja nopeaa – mutta silti kannattaa käyttää Matplotlibiä pylväskaavioiden, viivakaavioiden ja laatikkokaavioiden piirtämiseen. Se on sekä taustalla oleva moottori, jota Pandas väistämättä käyttää, että siinä on myös enemmän mukautusvaihtoehtoja, eikä sinun tarvitse muistaa uusia argumentteja, joita voit käyttää Pandas-juontien kanssa.
Tästä huolimatta joidenkin juonteiden kohdalla saatat haluta mieluummin Panda, koska ne on tehtävä manuaalisesti Matplotlibissä, ja jotkin niistä ovat niin vaivalloista tehdä, ettei se ole vaivan arvoista, kuten KDE-rivit.
pandat kuvaaja Moduulit
Mitä DataFrame
visualisoinnin tarjonta ei ole meille liian uutta. Kuitenkin taustalla oleva moduuli, jota he kutsuvat, pandas.plotting
tekee. plotting
moduulissa on useita toimintoja, joita voimme käyttää, kuten autocorrelation_plot()
, bootstrap_plot()
ja scatter_matrix()
.
Jokainen näistä hyväksyy joko a Series
tai DataFrame
, riippuen niiden tuottaman visualisoinnin tyypistä sekä tietyistä piirtämis- ja tyyliparametreista.
Bootstrap-juoni
bootstrapping on prosessi, jossa tietojoukosta otetaan satunnainen näyte (korvaamalla) ja lasketaan tarkkuusmitat, kuten puolueellisuus, vaihtelu ja luottamusvälit satunnaisnäytteitä varten. "Korvaamalla" tarkoittaa käytännössä sitä, että jokainen satunnaisesti valittu elementti voidaan valita uudelleen. Ilman vaihtoa tarkoittaa, että jokaisen satunnaisesti valitun elementin jälkeen se poistetaan seuraavan näytteen poolista.
A Bootstrap-juoni, jonka Pandas on luonut, käynnistää tietojoukon keskiarvon, mediaanin ja keskialueen tilastot otoksen perusteella size
, jonka jälkeen kaavio näytetään myöhemmin kautta plt.show()
. Oletusargumentit for size
ja samples
olemme 50
ja 500
vastaavasti.
Tämä tarkoittaa, että otamme näytteen ominaisuudesta 50
arvot. Sitten luodaan 50 elementin osaotos (synteettinen data) näille 50 arvolle ja yhteenvetotilasto (keskiarvo/mediaani/keskialue) lasketaan niille. Tämä prosessi toistetaan 500
kertaa, joten lopulta meillä on 500 yhteenvetotilastoa:
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()
Autokorrelaatiokaavio
Autokorrelaatiokaaviot käytetään tietojen satunnaisuuden tarkistamiseen aikasarjatietojen osalta. Useita autokorrelaatioita lasketaan erilaisille aikaleimoille, ja jos tiedot ovat todella satunnaisia - korrelaatio on lähellä nollaa. Jos ei, korrelaatio on suurempi kuin nolla.
Piirretään kaksi autokorrelaatiokaaviota – yksi meidän kanssamme Arvo ominaisuus, ja yksi, jossa on a Series
täynnä satunnaisia arvoja:
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()
Autokorrelaatiokaavio kohteelle random_series
pitäisi pyöriä 0
, koska se on satunnaista dataa, kun taas kaavio Value
ominaisuus ei:
On syytä huomata, että autokorrelaatio mittaa yhtä muoto satunnaisuudesta, koska korreloimatonta, mutta ei-satunnaista dataa on olemassa. Jos se ei ole satunnainen, mutta sillä ei ole merkittäviä korrelaatioita – Autokorrelaatiokaavio osoittaisi, että tiedot ovat satunnaisia.
Sirontamatriisit
Sirontamatriisit juoni a ruudukko Scatter Plots kaikille ominaisuuksille kaikkia ominaisuuksia vastaan. Koska tämä väistämättä vertaa jokaista ominaisuutta myös itseensä - diagonaalinen jossa näin tapahtuu, korvataan yleensä a:lla histogrammi tämän ominaisuuden hajontakaavion sijaan. Sirontamatriisit tunnetaan myös nimellä Pari tontteja, ja Seaborn tarjoaa a pairplot()
toiminto juuri tätä varten.
- scatter_matrix()
toiminto hyväksyy a DataFrame
ja tuottaa sirontamatriisin kaikille numeerisille ominaisuuksilleen ja palauttaa 2D-taulukon Axes
tapauksia, jotka sisältävät sirontamatriisin. Jos haluat muokata niitä, sinun kannattaa selata niitä läpi:
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()
Tämä johtaa melko suureen hajontamatriisiin kaikista ominaisuuksista verrattuna muihin ominaisuuksiin:
Voit myös kulkea sisään diagonal
argumentti, joka hyväksyy 'hist'
or 'kde'
määrittääksesi minkä tyyppisen jakelukaavion haluat piirtää diagonaaliin, sekä alpha
, joka määrittää merkkien läpikuultavuuden sirontakaavioissa.
- 100
- Meistä
- Kaikki
- jo
- Toinen
- perustelut
- noin
- ovat
- Bitti
- Laatikko
- soittaa
- kyvyt
- Luku
- tarkkailun
- koodi
- Sarake
- Yhteinen
- maa
- Pari
- Luominen
- tiedot
- eri
- jakelu
- Eurooppalainen
- Euroopan unioni
- esimerkki
- Ominaisuus
- Ominaisuudet
- Keskittää
- toiminto
- toiminnallisuus
- general
- tuottaa
- HTTPS
- IT
- tunnettu
- suuri
- suurempi
- Kirjasto
- linja
- kartta
- Matriisi
- eniten
- nimittäin
- nimet
- Lähellä
- kampanja
- Tarjoukset
- Vaihtoehdot
- Muut
- vaihe
- pool
- prosessi
- tuottaa
- toimittaa
- tarkoituksiin
- nostaa
- RE
- korvataan
- tulokset
- Tuotto
- Said
- valittu
- setti
- Lyhyt
- merkittävä
- samankaltainen
- So
- lähdekoodi
- määrittely
- alkoi
- tilasto
- Lähde
- Kautta
- liitto
- us
- arvo
- visualisointi
- Mitä
- wikipedia
- arvoinen
- X
- vuosi
- nolla-