La fonction bar
de Matplotlib permet de créer des graphiques en barres. Les graphiques en barres sont souvent utilisés pour représenter des données discrètes ou catégorielles.
Voici un exemple simple de création d'un graphique en barres en utilisant la fonction bar :
import matplotlib.pyplot as plt
# Données d'exemple
labels = ['A', 'B', 'C', 'D']
values = [10, 25, 20, 15]
# Création du graphique à barres
plt.bar(labels, values)
# Ajout de titre et de labels
plt.title('Exemple de graphique en barres')
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()
Il est possible de faire un graphique en barres avec des barres de couleurs différentes en utilisant une palette de couleurs dans Matplotlib. Cela peut être utile pour mettre en évidence des différences entre les barres ou pour donner une meilleure lisibilité à votre graphique.
Voici un exemple de code pour créer un graphique en barres avec des barres de couleurs différentes :
import matplotlib.pyplot as plt
import numpy as np
# Données d'exemple
x = list("ABCD") # Possible, car une string est itérable !
y = [10, 20, 30, 40]
# Utilisation de la palette de couleurs "Set2".
palette = plt.get_cmap("Set2")
# Création du graphique
fig, ax = plt.subplots()
# Affichage des barres avec des couleurs différentes
for i in range(len(x)):
ax.bar(x[i], y[i], color=palette(i))
# Configuration des axes
ax.set_xlabel("Variable X")
ax.set_ylabel("Variable Y")
ax.set_title("Exemple de graphique en barres avec des couleurs différentes")
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()
Un graphique à barres empilées permet de représenter des données en barres superposées les unes sur les autres. Cela peut être utile pour mettre en évidence des proportions dans les données.
Voici un exemple de code pour créer un graphique à barres empilées :
import matplotlib.pyplot as plt
import numpy as np
# Données d'exemple
x = ["A", "B", "C", "D"]
y1 = [10, 20, 30, 40]
y2 = [20, 30, 10, 50]
y3 = [5, 15, 25, 35]
# Création du graphique à barres empilées
fig, ax = plt.subplots()
ax.bar(x, y1, label="Y1")
ax.bar(x, y2, bottom=y1, label="Y2")
ax.bar(x, y3, bottom=np.array(y1) + np.array(y2), label="Y3")
# Configuration des axes
ax.set_xlabel("Variable X")
ax.set_ylabel("Variable Y")
ax.set_title("Exemple de graphique à barres empilées")
ax.legend()
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()
Un graphique à barres groupées permet de représenter plusieurs ensembles de données en utilisant des barres côte à côte. Cela peut être utile pour comparer facilement les données entre plusieurs groupes.
Voici un exemple de code pour créer un graphique à barres groupées :
import matplotlib.pyplot as plt
import numpy as np
# Données d'exemple
x = ["A", "B", "C", "D"]
y1 = [10, 20, 30, 40]
y2 = [20, 30, 10, 50]
y3 = [5, 15, 25, 35]
# Création du graphique à barres groupées
fig, ax = plt.subplots()
bar_width = 0.25
ax.bar(np.arange(len(x)), y1, width=bar_width, label="Y1")
ax.bar(np.arange(len(x)) + bar_width, y2, width=bar_width, label="Y2")
ax.bar(np.arange(len(x)) + 2 * bar_width, y3, width=bar_width, label="Y3")
# Configuration des axes
ax.set_xticks(np.arange(len(x)) + bar_width)
ax.set_xticklabels(x)
ax.set_xlabel("Variable X")
ax.set_ylabel("Variable Y")
ax.set_title("Exemple de graphique à barres groupées")
ax.legend()
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()
Il est aussi possible de tracer un graphe en barres avec des barres horizontales. Cela peut notamment être utile pour tracer des graphes de type "Pyramide des ages". Voici un exemple simple : les données affichées sont à titre d'exemple. Notez l'utilisation de valeurs négatives pour les hommes, de manière à ce que les barres associées soient dirigées vers la gauche.
import numpy as np
import matplotlib.pyplot as plt
# Données de la pyramide des âges (données à titre d'exemple).
data = {
"Age": ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75-79", "80-84", "85-89", "90+"],
"Hommes": np.array([1865608, 1977576, 2087760, 2233718, 2434967, 2487273, 2467573, 2365173, 2226832, 2271754, 2449194, 2487264, 2345707, 2090260, 1670025, 1286357, 837168, 472912, 258659]),
"Femmes": np.array([1773240, 1880395, 1987667, 2129979, 2319149, 2388977, 2373408, 2296643, 2168552, 2218140, 2386580, 2435569, 2304760, 2071770, 1773685, 1539681, 1215122, 861963, 754510])
}
# Création du graphique.
fig, ax = plt.subplots()
fig.set_size_inches(8, 5)
# Affichage des données pour les hommes et les femmes.
ax.barh(data["Age"], -data["Hommes"], label="Hommes", color="royalblue")
ax.barh(data["Age"], data["Femmes"], label="Femmes", color="tomato")
# Ajout des valeurs numériques sur le graphique.
for i, (homme, femme) in enumerate(zip(data["Hommes"], data["Femmes"])):
ax.text(-homme + 2e4, i - 0.25, f"{homme}", color="white", fontsize=8)
ax.text(femme - 5e5, i - 0.25, f"{femme}", color="white", fontsize=8)
# Décoration du graphique.
ax.set_xlabel("Population")
ax.set_ylabel("Tranches d'âge")
ax.set_title("Pyramide des âges en France")
ax.legend()
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()