Histogramme
Les histogrammes représentent la fréquence ou la distribution de probabilité d'une variable à l'aide de barres verticales de largeur égale, souvent appelées barres.
Le module pyplot
fournit la fonction hist
pour créer des histogrammes. Le paramètre requis est la donnée (x
), qui peut être un tableau ou une séquence de tableaux. Si plusieurs tableaux sont passés, chacun est affiché dans une couleur différente.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://staging-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()
Intervalles et Hauteur
Un objet Series
contenant les températures moyennes annuelles à Seattle a été transmis à la fonction hist()
. Par défaut, les données sont divisées en 10 intervalles égaux allant de la valeur minimale à la valeur maximale. Cependant, seuls 9 intervalles sont visibles car le deuxième intervalle ne contient aucune donnée.
La hauteur de chaque intervalle correspond par défaut à la fréquence des valeurs dans cet intervalle (nombre d'occurrences).
Nombre d'intervalles
Un autre paramètre important, mais optionnel, est bins
, qui accepte soit le nombre d'intervalles (entier), soit une séquence de nombres spécifiant les bornes des intervalles, soit une chaîne de caractères. La plupart du temps, indiquer le nombre d'intervalles suffit largement.
Il existe plusieurs méthodes pour déterminer la largeur des intervalles d'un histogramme. Dans cet exemple, nous utiliserons la formule de Sturges, qui calcule le nombre optimal d'intervalles en fonction de la taille de l'échantillon :
Ici, n
représente la taille du tableau de données.
Vous pouvez explorer d'autres méthodes pour le calcul des intervalles ici.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://staging-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()
Le nombre de lignes dans le DataFrame
est de 26 (la taille de la Series
), donc le nombre d'intervalles obtenu est 5.
Approximation de la densité de probabilité
Pour visualiser une approximation de la densité de probabilité, définissez le paramètre density
sur True
dans la fonction hist
.
Désormais, la hauteur de chaque barre est calculée selon :
où :
- le nombre total de valeurs dans l'ensemble de données ;
- le nombre de valeurs dans la barre ;
- la largeur de la barre.
Cela garantit que l'aire totale sous l'histogramme est 1, ce qui correspond à la propriété clé d'une fonction de densité de probabilité (PDF).
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://staging-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()
Cela fournit une approximation de la fonction de densité de probabilité pour les données de température.
Si vous souhaitez explorer davantage les paramètres de hist()
, vous pouvez consulter la documentation de hist()
.
Swipe to start coding
Créer une approximation d'une fonction de densité de probabilité à l'aide d'un échantillon provenant de la distribution normale standard :
- Utiliser la fonction appropriée pour créer un histogramme.
- Utiliser
normal_sample
comme données pour l'histogramme. - Spécifier le nombre de classes comme deuxième argument en utilisant la formule de Sturges.
- Faire de l'histogramme une approximation d'une fonction de densité de probabilité en spécifiant correctement l'argument le plus à droite.
Solution
Merci pour vos commentaires !