Histogrammi
Histogrammit kuvaavat muuttujan frekvenssi- tai todennäköisyysjakaumaa käyttämällä yhtälevyisiä pystysuoria pylväitä, joita kutsutaan usein palkkeiksi.
pyplot
-moduuli tarjoaa hist
-funktion histogrammien luomiseen. Pakollinen parametri on data (x
), joka voi olla taulukko tai taulukoiden jono. Jos useita taulukoita annetaan, jokainen näytetään eri värillä.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Creating a histogram plt.hist(weather_df['Seattle']) plt.show()
Väliarvot ja Korkeus
Series
-olio, joka sisältää Seattlen keskimääräiset vuotuiset lämpötilat, välitettiin hist()
-funktiolle. Oletuksena data jaetaan 10 yhtä suureen väliin, jotka ulottuvat pienimmästä suurimpaan arvoon. Kuitenkin vain 9 pylvästä näkyy, koska toisessa väliarvossa ei ole yhtään havaintoa.
Kunkin pylvään korkeus vastaa oletuksena tämän välin frekvenssiä (kuinka monta kertaa arvoja esiintyy kyseisessä välissä).
Pylväiden määrä
Toinen tärkeä, mutta valinnainen parametri on bins
, joka voi olla joko pylväiden määrä (kokonaisluku), pylväiden reunat määrittelevä lukujono tai merkkijono. Useimmiten pelkkä pylväiden määrän antaminen riittää.
Histogrammin pylväiden leveyden määrittämiseen on useita menetelmiä. Tässä esimerkissä käytämme Sturgesin kaavaa, joka laskee optimaalisen pylväsmäärän otoskoon perusteella:
Tässä n
on data-taulukon koko.
Voit tutustua muihin binien laskentamenetelmiin täällä.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Specifying the number of bins plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df)))) plt.show()
Rivien määrä DataFrame
:ssä on 26 (Series
:n koko), joten binien lopullinen määrä on 5.
Todennäköisyystiheyden approksimaatio
Nähdäksesi todennäköisyystiheyden approksimaation, aseta density
-parametri arvoksi True
hist
-funktiossa.
Nyt jokaisen binin korkeus lasketaan kaavalla:
missä:
– arvojen kokonaismäärä aineistossa;
– arvojen määrä binissä;
– binin leveys.
Tämä varmistaa, että histogrammin kokonaispinta-ala on 1, mikä vastaa todennäköisyystiheysfunktion (PDF) keskeistä ominaisuutta.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Making a histogram a probability density function approximation plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df))), density=True) plt.show()
Tämä antaa lämpötiladatan todennäköisyystiheysfunktion approksimaation.
Jos haluat tutustua tarkemmin hist()
-funktion parametreihin, voit katsoa lisätietoja hist()
-dokumentaatiosta.
Swipe to start coding
Luo todennäköisyystiheysfunktion approksimaatio käyttämällä otosta standardin normaalijakauman mukaan:
- Käytä oikeaa funktiota histogrammin luomiseen.
- Käytä
normal_sample
histogrammin datana. - Määritä binien määrä toisena argumenttina Sturgesin kaavan mukaan.
- Tee histogrammista todennäköisyystiheysfunktion approksimaatio määrittämällä oikeanpuoleisin argumentti oikein.
Ratkaisu
Kiitos palautteestasi!