Matplotlib - Bar Plot

Un graphique à barres ou un graphique à barres est un graphique ou un graphique qui présente des données catégorielles avec des barres rectangulaires dont les hauteurs ou les longueurs sont proportionnelles aux valeurs qu'elles représentent. Les barres peuvent être tracées verticalement ou horizontalement.

Un graphique à barres montre des comparaisons entre des catégories discrètes. Un axe du graphique montre les catégories spécifiques comparées et l'autre axe représente une valeur mesurée.

L'API Matplotlib fournit le bar()fonction qui peut être utilisée dans l'utilisation du style MATLAB ainsi que dans l'API orientée objet. La signature de la fonction bar () à utiliser avec l'objet axes est la suivante -

ax.bar(x, height, width, bottom, align)

La fonction crée un graphique à barres avec le rectangle lié de taille (x −largeur = 2; x + largeur = 2; bas; bas + hauteur).

Les paramètres de la fonction sont -

X séquence de scalaires représentant les coordonnées x des barres. align des contrôles si x est le centre de la barre (par défaut) ou le bord gauche.
la taille scalaire ou séquence de scalaires représentant la (les) hauteur (s) des barres.
largeur scalaire ou de type tableau, facultatif. la (les) largeur (s) des barres par défaut 0.8
bas scalaire ou de type tableau, facultatif. la (les) coordonnée (s) y des barres par défaut Aucune.
aligner {'center', 'edge'}, facultatif, par défaut 'center'

La fonction renvoie un objet conteneur Matplotlib avec toutes les barres.

Voici un exemple simple du diagramme à barres Matplotlib. Il montre le nombre d'étudiants inscrits à divers cours offerts dans un institut.

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()

Lors de la comparaison de plusieurs quantités et lors du changement d'une variable, nous pourrions vouloir un diagramme à barres où nous avons des barres d'une couleur pour une valeur de quantité.

On peut tracer plusieurs histogrammes en jouant avec l'épaisseur et les positions des barres. La variable de données contient trois séries de quatre valeurs. Le script suivant affichera trois graphiques à barres de quatre barres. Les barres auront une épaisseur de 0,25 unités. Chaque graphique à barres sera décalé de 0,25 unité par rapport au précédent. L'objet de données est un multidict contenant le nombre d'étudiants passés dans trois branches d'une école d'ingénieurs au cours des quatre dernières années.

import numpy as np
import matplotlib.pyplot as plt
data = [[30, 25, 50, 20],
[40, 23, 51, 17],
[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)

Le graphique à barres empilées empile des barres qui représentent différents groupes les uns sur les autres. La hauteur de la barre résultante montre le résultat combiné des groupes.

Le paramètre inférieur facultatif du pyplot.bar()La fonction vous permet de spécifier une valeur de départ pour une barre. Au lieu de passer de zéro à une valeur, il ira du bas vers la valeur. Le premier appel à pyplot.bar () trace les barres bleues. Le deuxième appel à pyplot.bar () trace les barres rouges, avec le bas des barres bleues en haut des barres rouges.

import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['Men', 'Women'])
plt.show()