Matplotlib - Gráfico de Barras

Um gráfico de barras ou gráfico de barras é um gráfico ou gráfico que apresenta dados categóricos com barras retangulares com alturas ou comprimentos proporcionais aos valores que representam. As barras podem ser plotadas verticalmente ou horizontalmente.

Um gráfico de barras mostra comparações entre categorias discretas. Um eixo do gráfico mostra as categorias específicas sendo comparadas e o outro eixo representa um valor medido.

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

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

A função faz um gráfico de barra com o retângulo limitado de tamanho (x −width = 2; x + largura = 2; inferior; inferior + altura).

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

x sequência de escalares que representam as coordenadas x das barras. alinhe os controles se x for o centro da barra (padrão) ou a borda esquerda.
altura escalar ou sequência de escalares que representam a (s) altura (s) das barras.
largura escalar ou semelhante a matriz, opcional. a (s) largura (s) das barras padrão 0,8
inferior escalar ou semelhante a matriz, opcional. a (s) coordenada (s) y das barras padrão Nenhum.
alinhar {'center', 'edge'}, opcional, padrão 'center'

A função retorna um objeto de contêiner Matplotlib com todas as barras.

A seguir está um exemplo simples do gráfico de barra Matplotlib. Mostra o número de alunos matriculados em vários cursos oferecidos em um instituto.

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()

Ao comparar várias quantidades e ao alterar uma variável, podemos querer um gráfico de barras onde temos barras de uma cor para um valor de quantidade.

Podemos plotar vários gráficos de barras brincando com a espessura e as posições das barras. A variável de dados contém três séries de quatro valores. O script a seguir mostrará três gráficos de quatro barras. As barras terão espessura de 0,25 unidades. Cada gráfico de barras será deslocado 0,25 unidades do anterior. O objeto de dados é um multidicto contendo o número de alunos aprovados em três ramos de uma faculdade de engenharia nos últimos quatro anos.

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)

O gráfico de barras empilhadas empilha barras que representam grupos diferentes uns sobre os outros. A altura da barra resultante mostra o resultado combinado dos grupos.

O parâmetro opcional inferior do pyplot.bar()função permite que você especifique um valor inicial para uma barra. Em vez de ir de zero a um valor, ele irá do fundo ao valor. A primeira chamada para pyplot.bar () plota as barras azuis. A segunda chamada para pyplot.bar () plota as barras vermelhas, com a parte inferior das barras azuis no topo das barras vermelhas.

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()