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

Gráficos de Barras do Matplotlib

Gráfico de superfície D

O gráfico de barras mostra comparações entre categorias discretas. Um eixo do gráfico mostra as categorias específicas a serem comparadas, e o outro eixo representa os valores medidos.

A API do Matplotlib fornece a função bar(), que pode ser usada no estilo de API orientada a objetos e no estilo de uso do MATLAB. A assinatura da função bar() usada com o objeto axis é a seguinte -

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

Esta função usa o tamanho de (x − width = 2; x + ; width=2; bottom; bottom + height) para criar barras gráficas de retângulos.

Os parâmetros dessa função são -

x - Sequência de escalares que representa as coordenadas x das barras. Se x for o centro (padrão) ou margem esquerda da barra, o controle de alinhamento é aplicado. height - Escalares ou sequências de escalares que representam a altura das barras. width - Escalares ou arrays semelhantes, opcional. A largura das barras é 0 por padrão.8. bottom - Escalares ou arrays semelhantes, opcional. As coordenadas y das barras é None por padrão. align - {'center', 'edge'}, opcional, padrão: center.

Esta função retorna um objeto contenedor de Matplotlib que contém todas as barras. A seguir, há um exemplo simples de gráfico de barras de Matplotlib. Ele mostra o número de alunos em várias disciplinas oferecidas por uma faculdade.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : pt.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()

Execute o código de exemplo acima para obter os seguintes resultados -

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

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

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : pt.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()

Execute o código de exemplo acima para obter os seguintes resultados -

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

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

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : pt.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
 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('Pontuação')
 ax.set_title('Pontuação por Grupo e Gênero')
 ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5))
 ax.set_yticks(np.arange(0, 81, 10))
 ax.legend(labels=['Masculino', 'Feminino'])
 plt.show()

Execute o código de exemplo acima para obter os seguintes resultados -