English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

graphique barre Matplotlib

Graphique en surface D

Le graphique en barres montre la comparaison entre des catégories discrètes. Un axe du graphique montre les catégories spécifiques à comparer, et un autre axe représente les valeurs mesurées.

L'API Matplotlib fournit la fonction bar() qui peut être utilisée dans le style MATLAB ainsi qu'avec l'API orientée objet. Le signature de la fonction bar() utilisée avec l'objet axis est la suivante -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
ax.bar(x, height, width, bottom, align)

Cette fonction utilise une taille de (x − width = 2; x + ; width=2; bottom; bottom + (height) pour lier la création de barres à la création de rectangles.

Les paramètres de cette fonction sont -

x - Séquence de scalaires représentant les coordonnées x des barres. Si x est le centre de la barre (par défaut) ou le bord gauche, le contrôle d'alignement est utilisé. height - Scalaire ou séquence de scalaires représentant la hauteur des barres. width - Scalaire ou array similaire, optionnel. La largeur des barres par défaut est 0.8. bottom - Scalaire ou array similaire, optionnel. Les coordonnées y des barres par défaut sont None. align - {'center', 'edge'}, optionnel, par défaut : center.

Cette fonction renvoie un objet conteneur Matplotlib contenant toutes les barres. Voici un exemple simple de graphique en barres Matplotlib. Il montre le nombre d'étudiants pour divers cours offerts par une université.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
 plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
 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()

Exécutez le code d'exemple suivant pour obtenir le résultat suivant -

当比较多个数量和更改一个变量时,可能需要一个条形图,其中有一个颜色的条形图用于一个数量值。

可以通过使用条形的厚度和位置来绘制多个条形图。数据变量包含三个系列的四个值。以下脚本将显示四个条形图的三个条形图。这些条的厚度为0.25个单位。每个条形图将从前一个移动0.25个单位。数据对象是一个多元图,包含过去四年在工程学院的三个分支中通过的学生数量。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
 plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
 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)
 plt.show()

Exécutez le code d'exemple suivant pour obtenir le résultat suivant -

堆积条形图堆叠表示彼此顶部的不同组的条形图。结果为条形图的高度显示组的组合结果。

pyplot.bar()函数的可选bottom参数指定条的起始值。它不是从零运行到一个值,而是从底部到值。第一次调用pyplot.bar()绘制蓝条。第二次调用pyplot.bar()绘制红色条形图,蓝色条形图的底部位于红色条形图的顶部。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
 plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
 N = 5
 menMeans = (20, 35, 30, 35, 27)
 womenMeans = (25, 32, 34, 20, 25)
 ind = np.arange(N) # the x locations for the groups
 largeur = 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('Score')
 ax.set_title('Score par groupe et sexe')
 ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5))
 ax.set_yticks(np.arange(0, 81, 10))
 ax.legend(labels=['homme', 'femme'])
 plt.show()

Exécutez le code d'exemple suivant pour obtenir le résultat suivant -