Pandas on meid seni aidanud andmete eeltöötluse etapis. Kuigi ühel juhul oleme histogrammide loomisel kasutanud ka teist Pandade moodulit – plotting
.
Siiani oleme seda sihikindlalt vältinud, sest selle varasem tutvustamine tekitaks rohkem küsimusi, kui vastaks. Nimelt Pandad ja Matplotlib oli nii tavaline kõikjal esinev duo, et Pandas on alustanud Matplotlibi funktsionaalsuse integreerimist. See tugevalt toetub Matplotlibile mis tahes tegeliku graafiku tegemisel ja palju Matplotlibi funktsioone on pakitud lähtekoodi. Teise võimalusena saate joonistamiseks kasutada muid taustaprogramme, näiteks Kavandatud ja Bokeh.
Siiski tutvustab Pandas meile ka paari süžeed, mis ei ole osa Matplotlibi standardsetest süžeetüüpidest, nt KDE-d, Andrews Curves, Bootstrap Plots ja Hajumismaatriksid.
. plot()
Panda funktsioon DataFrame
kasutab poolt määratud taustaprogrammi plotting.backend
, ja olenevalt kind
argument – genereerib antud teeki kasutades graafiku. Kuna paljud neist kattuvad – pole mõtet katta süžeetüüpe nagu line
, bar
, hist
ja scatter
. Nad toodavad sama koodiga palju samu graafikuid, mida oleme seni teinud Matplotlibiga.
Heidame vaid põgusa pilgu sellele plot()
funktsiooni, kuna selle aluseks olevat mehhanismi on seni uuritud. Selle asemel keskendume mõnele süžeele, mida me ei saa juba Matplotlibiga.
See on väga lühike peatükk, kuna Pandade joonistamis- ja visualiseerimisvõimalused on Matplotlibiga võrreldes kahvatud, kuid siiski on kasulik teada mõnda neist ja olla teadlik võimalusest joonistada DataFrame
s otse.
. DataFrame.plot() funktsioon
. plot()
funktsioon aktsepteerib x
ja y
funktsioonid ja a kind
argument. Teise võimalusena, et vältida kind
argument, võite ka helistada DataFrame.plot.kind()
selle asemel ja sisestage x
ja y
funktsioone.
Aktsepteeritud väärtused kind
argumendid on järgmised: line
, bar
, barh
(horisontaalne riba), hist
, box
, kde
, density
(sünonüüm kde
), area
, pie
, scatter
ja hexbin
(sarnaselt Heatmapiga).
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()
Selle asemel, et pakkuda Series
näiteks Matplotlibi puhul – piisab, kui pakkuda veergude nimedja kuna te helistate plot()
funktsioon DataFrame
kui visualiseerite, on Pandadel lihtne need stringiväärtused vastavate veergude nimedega vastendada.
Iga selline kõne teeb uue Figure
eksemplar ja joonistab sellele sobivad väärtused:
Mitme telje joonistamiseks samale Figure
, saate teha a Figure
ja üks või mitu Axes
kaudu plt.subplots()
ja määrake sobiv Axes
Euroopa ax
iga argument plot.plot_type()
helistama:
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()
Mõned standardargumendid, näiteks rotation
argumendid on tegelikult erinevad plot()
kõned. Näiteks, rotation
on lühendatud rot
. See muudab selle pisut keeruliseks lihtsalt vaheta Matplotlibi ja Pandase vahel, kuna suure tõenäosusega jõuate dokumentatsioonilehtedele, kontrollides, milliseid argumente saab rakendada ja milliseid mitte.
Nüüd, selle asemel, et luua uus Figure
or Axes
Näiteks paigutatakse kõik need krundid vastavasse kohta Axes
juhtudel, mille oleme neile varustanud:
Üldiselt on Pandadega joonistamine mugav ja kiire, kuid isegi nii on joondiagrammide, joonjoonte ja kastigraafikute joonistamiseks tõenäoliselt vaja kasutada Matplotlibi. See on nii aluseks olev mootor, mida Pandas paratamatult kasutab, kui ka sellel on rohkem kohandamisvõimalusi ning te ei pea meeles pidama uut argumentide komplekti, mida saate Pandade süžeedega kasutada.
Nagu öeldud, võiksite mõne krundi puhul eelistada Pandad, kuna need tuleb Matplotlibis käsitsi teha ja mõned neist on nii vaevalised, et pole vaeva väärt, näiteks KDE read.
pandad joonistamine moodulid
M DataFrame
See, mida visualiseerimisel pakkuda on, pole meie jaoks uus. Kuid aluseks olev moodul, mida nad kutsuvad, pandas.plotting
teeb. plotting
moodulil on mitmeid funktsioone, mida saame kasutada, näiteks autocorrelation_plot()
, bootstrap_plot()
ja scatter_matrix()
.
Kõik need aktsepteerivad kas a Series
või DataFrame
, olenevalt visualiseerimise tüübist, mida nad toodavad, samuti teatud parameetritest joonise spetsifikatsioonide ja stiili eesmärkidel.
Bootstrap Plot
Bootstrapping on andmestiku juhusliku valimi (asendamisega) ja täpsuse mõõtmise, näiteks erapoolikus, dispersioon ja usaldusvahemikud juhuslike valimite jaoks. "Asendamisega" tähendab praktikas seda, et iga juhuslikult valitud elemendi saab uuesti valida. Ilma asendamiseta tähendab, et pärast iga juhuslikult valitud elementi eemaldatakse see järgmise proovi jaoks kogumist.
A Bootstrap Plot, mille on loonud Pandas, käivitab valimi põhjal andmestiku keskmise, mediaan- ja keskmise vahemiku statistika size
, mille järel näidatakse graafikut edaspidi kaudu plt.show()
. Vaikeargumendid size
ja samples
See on 50
ja 500
võrra.
See tähendab, et funktsiooni puhul võtame proovi 50
väärtused. Seejärel luuakse nende 50 väärtuse jaoks 50-elemendiline alamvalim (sünteetilised andmed) ja nende jaoks arvutatakse kokkuvõtlik statistika (keskmine/mediaan/keskvahemik). Seda protsessi korratakse 500
korda, nii et lõpuks on meil 500 kokkuvõtvat statistikat:
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()
Autokorrelatsiooni graafik
Autokorrelatsiooni graafikud kasutatakse andmete juhuslikkuse ja aegridade andmete kontrollimiseks. Mitu autokorrelatsioonid arvutatakse erinevate ajatemplite jaoks ja kui andmed on tõeliselt juhuslikud, on korrelatsioon nullilähedane. Kui ei, siis on korrelatsioon suurem kui null.
Joonistame kaks autokorrelatsioonigraafikut – üks meiega Väärtus funktsioon ja üks, millel on a Series
täidetud juhuslike väärtustega:
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()
Autokorrelatsiooni diagramm jaoks random_series
peaks ringi käima 0
, kuna tegemist on juhuslike andmetega, samas kui graafiku jaoks Value
funktsioon ei:
Väärib märkimist, et autokorrelatsioon mõõdab ühte vorm juhuslikkusest, kuna korrelatsioonita, kuid mittejuhuslikud andmed on olemas. Kui see pole juhuslik, kuid sellel pole olulisi korrelatsioone, näitab autokorrelatsiooni graafik, et andmed on juhuslikud.
Hajumismaatriksid
Hajumismaatriksid süžee a võre hajuvusdiagrammid kõigi funktsioonide ja kõigi funktsioonide jaoks. Kuna see võrdleb paratamatult iga omadust ka iseendaga – diagonaal kus see juhtub, asendatakse tavaliselt tähega a Histogramm selle funktsiooni, mitte hajuvusdiagrammi. Hajumismaatriksid on tuntud ka kui Paariskrundidja Seaborn pakub a pairplot()
funktsioon just selleks.
. scatter_matrix()
funktsioon aktsepteerib a DataFrame
ja loob hajuvusmaatriksi kõigi selle numbriliste tunnuste jaoks ning tagastab 2D massiivi Axes
eksemplare, mis sisaldavad hajuvusmaatriksit. Nende kohta midagi näpistamiseks tuleks neid korrata.
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()
Selle tulemuseks on kõigi funktsioonide üsna suur hajuvusmaatriks võrreldes kõigi teiste funktsioonidega:
Samuti saab sisse astuda diagonal
argument, mis nõustub 'hist'
or 'kde'
et määrata, millist tüüpi jaotusgraafikut soovite diagonaalile joonistada, samuti alpha
, täpsustades markerite läbipaistvust hajuvusdiagrammidel.
- 100
- MEIST
- Materjal: BPA ja flataatide vaba plastik
- juba
- Teine
- argumendid
- ümber
- on
- Natuke
- Kast
- helistama
- võimeid
- Peatükk
- kontroll
- kood
- Veerg
- ühine
- riik
- Paar
- loomine
- andmed
- erinev
- jaotus
- Euroopa
- Euroopa Liit
- näide
- tunnusjoon
- FUNKTSIOONID
- Keskenduma
- funktsioon
- funktsionaalsus
- Üldine
- tekitama
- HTTPS
- IT
- teatud
- suur
- suurem
- Raamatukogu
- joon
- kaart
- maatriks
- kõige
- nimelt
- nimed
- Lähedal
- pakkuma
- Pakkumised
- Valikud
- Muu
- faas
- ujula
- protsess
- tootma
- anda
- eesmärkidel
- tõstma
- RE
- asendatakse
- Tulemused
- Tulu
- Ütlesin
- väljavalitud
- komplekt
- Lühike
- märkimisväärne
- sarnane
- So
- lähtekoodi
- täpsustus
- alustatud
- statistika
- Allikas
- Läbi
- liit
- us
- väärtus
- visualiseerimine
- M
- Wikipedia
- väärt
- X
- aasta
- null