Criando gráficos com matplot

· 3 minutos de leitura

Criado por John Hunter (1968-2012), matplot é usada para criação de plots, histogramas, espectrogramas, gráficos (charts) simples e 3D e etc. Para ter uma ideia da diversidade dessa ferramenta, você pode visitar a galeria de exemplos.

Neste artigo, vou fazer uma demonstração bem simples, onde apresentarei como criar um gráfico de barras (barchart) em Python.

Primeiramente, você deve fazer a instalação de algumas bibliotecas.

1
pip3 install matplotlib scipy numpy

Estando agora com as bibliotecas necessárias instaladas, podemos dar partida ao nosso código de exemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
import matplotlib.pyplot as plt

data = ((30, 40, 80), ('r', 'g', '#00FF33'), (2013, 2014, 2015))
xPositions = np.arange(len(data[0]))
barWidth = 0.50  # Largura da barra

_ax = plt.axes()  # Cria axes

# bar(left, height, width=0.8, bottom=None, hold=None, **kwargs)
_chartBars = plt.bar(xPositions, data[0], barWidth, color=data[1],
                     yerr=5, align='center')  # Gera barras

for bars in _chartBars:
    # text(x, y, s, fontdict=None, withdash=False, **kwargs)
    _ax.text(bars.get_x() + (bars.get_width() / 2.0), bars.get_height() + 5,
             bars.get_height(), ha='center')  # Label acima das barras

_ax.set_xticks(xPositions)
_ax.set_xticklabels(data[2])

plt.xlabel('Years')
plt.ylabel('Rate')
plt.grid(True)
plt.legend(_chartBars, data[2])

plt.show()

Agora vamos a explicação. Primeiramente devemos fazer o import do* numpy e matplot.*

1
2
import numpy as np
import matplotlib.pyplot as plt

Depois disso, devemos declarar algumas variáveis que utilizaremos durante o script.

1
2
3
data = ((30, 40, 80), ('r', 'g', '#00FF33'), (2013, 2014, 2015))
xPositions = np.arange(len(data[0]))
barWidth = 0.50

O data é uma matriz que contém os dados para nosso gráfico de barras, veja significado de cada posição: data[0] – valores usados para definir a altura de cada barra; data[1] – será usado para as cores das barras. Observe a variação de formatos de cores declaradas. data[2] – para os nomeadores de referência para as barras (labels) e legenda.

Agora, devemos criar os objetos necessários para manipulação do gráfico e também de nossos Axes:

1
2
3
_ax = plt.axes()

_chartBars = plt.bar(xPositions, data[0], barWidth, color=data[1], yerr=5, align='center')  # Gera barras

Para melhorarmos os aspecto visual, podemos colocar os valores de cada barra, acima delas, fazendo da seguinte forma:

1
2
for bars in _chartBars:
    _ax.text(bars.get_x() + (bars.get_width() / 2.0), bars.get_height() + 5, bars.get_height(), ha='center')  # Label acima das barras

Com o código abaixo pode-se adicionar também informações de ano referente ao valor, abaixo das barras:

1
2
_ax.set_xticks(xPositions)
_ax.set_xticklabels(data[2])

O código abaixo adiciona labels nos eixos x e y e também uma grid como brackground, para facilitar a “divisão visual” dos itens:

1
2
3
plt.xlabel('Years')
plt.ylabel('Rate')
plt.grid(True)

Por fim, para termos um barchart com qualidade intuitiva bacana, adcione um legend e então teremos um gráfico bem autoexplicativo:

1
plt.legend(_chartBars, data[2])

No final de tudo, somente renderizamos o gráfico:

1
plt.show()

Segue abaixo uma imagem do gráfico gerado script mostrado acima:

Espero que tenham gostado deste exemplo, até a próxima.