Visualização de dados em Python com Matplotlib

Neste Tutorial aprenderemos a utilizar a biblioteca do python Matplotplotlib, que nos permite criar gráficos para análise, o curso será apresentado de forma bem resumida e direta ao ponto.

E no final criaremos um aplicativo onde demonstraremos o Matplotlib na prática, para que possamos ter um melhor entendimento de como utilizá-lo.

Espero que gostem, e qualquer dúvida é só comentar que teremos o maior prazer em ajudar.

Python Matplotlib - Introdução

Matplotlib é o módulo Python mais amplamente usado para traçar gráficos. Ele poderia produzir facilmente figuras prontas para publicação e ser usado em diferentes plataformas.

O módulo pyplot do Matplotlib tem uma interface semelhante ao MATLAB, portanto é mais fácil usar o pyplot se você já for usuário do MATLAB.

Python Matplotlib - como instalar Matplotlib

► Window

No WINDOWS, basta usar o comando abaixo, este comando pip também instala as dependências do Matplotlib automaticamente.

pip install matplotlib

► Linux

No Linux, abra o terminal Linux e use o comando abaixo de acordo com a versão Python em seu sistema.

Python 2.7

sudo apt-get install python-matplotlib

Python 3.4+

sudo apt-get install python3-matplotlib

 

Depois que terminarmos a instalação, para teste copie o seguinte código e tente rodar, se tudo estiver funcionando em ordem, você obterá um gráfico como este, caso contrário você obterá um erro, tente resolver, mas se você não conseguir resolver o erro, você sempre pode comentar aqui e nós o ajudaremos.

from matplotlib import pyplot as plt
plt.plot([1,2,3], [4,5,6])
plt.show()

Agora vamos explicar as linhas de código neste exemplo.

Este exemplo plota o gráfico de uma linha reta que contém os dados em [1,2,3] e [4,5,6].

from matplotlib import pyplot as plt - Aqui estamos importando MAtplotlib, como mencionado acima, o pyplot é um módulo de plot semelhante ao MATLAB.

plt.plot([1,2,3], [4,5,6])  - Ele plota o primeiro array na coordenada x e o segundo array na coordenada y usando o estilo de linha e cor padrão porque nenhum argumento extra é passado aqui.

plt.show()

Ele exibe a figura. A figura de plotagem não será exibida antes que esta linha seja executada.



Aprendemos a instalar o Matplotlib e também como usá-lo, mais adiante falaremos mais sobre os gráficos do Matplotlib.

 

Python Matplotlib - como criar Line Chart ( gráfico de linha )

Começamos traçando o tipo de gráfico básico - gráfico de linha. plot pode facilmente traçar linhas como linha linear ou linha curva, e também ter configurações diferentes, como cores, largura, tamanho do marcador, etc.

Linha Linear Matplotlib

Começamos traçando o tipo de gráfico básico - gráfico de linha. plot pode facilmente traçar linhas como linha linear ou linha curva, e também ter configurações diferentes, como cores, largura, tamanho do marcador, etc.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 9, 10)  
y = 2 * x
plt.plot(x, y, "b-")
plt.show()


 

Aqui, na primeira linha, importamos a biblioteca Matplotlib em nosso script e definimos como plt.

import matplotlib.pyplot as plt

Em seguida, definimos os dados a serem plotados.

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,2,3,4,5,6,7,8,9,10]

Depois disso, usamos plt.plot() para traçar o gráfico, onde x será o valor a ser traçado no eixo horizontal (eixo X) ey será o valor a ser traçado no eixo vertical (eixo Y ).
Para mostrar o gráfico, usamos plt.show()

plt.plot(x, y)
plt.show()

 

Também podemos definir a cor e o estilo da linha passando mais um argumento, como no exemplo abaixo.

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,2,3,4,5,6,7,8,9,10]

plt.plot(x, y, "r--")
plt.show()


Para definir o título do gráfico, use plt.title("O título que você deseja")
 

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,2,3,4,5,6,7,8,9,10]

plt.plot(x, y, "r--")

plt.title('Grafico usando Python')plt.title("Título esquerdo", fontdict={'family': 'serif', 'color' : 'darkblue','weight': 'bold','size': 16},loc='left')
plt.title("Título central", fontdict={'family': 'monospace', 'color' : 'red','weight': 'bold','size': 16},loc='center')
plt.title("Título direita", fontdict={'family': 'fantasy', 'color' : 'black','weight': 'bold','size': 16},loc='right')

plt.xlabel('Valores do eixo X')
plt.ylabel('Valores do eixo Y')

plt.show()

 




Para definir o título dos valores nas coordenadas dos eixos X e Y, use o seguinte código:

plt.xlabel('Valores do eixo X')
plt.ylabel('Valores do eixo Y')

 

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,2,3,4,5,6,7,8,9,10]

plt.plot(x, y, "r--")
plt.title('Grafico usando Python')
plt.xlabel('Valores do eixo X',family='serif', color='r', weight='normal', size = 16,labelpad = 6)
plt.ylabel('Valores do eixo Y',family='serif', color='r', weight='normal', size = 16,labelpad = 6)

plt.show()

 




Você também pode mostrar a grade em seu gráfico usando o código abaixo:

plt.grid(True)

 

Matplotlib cores da linha

As cores básicas integradas têm o alias abaixo:

Alias      Color
b            blue ( Azul )
g            green ( Verde )
r             red ( Vermelha )
c            cyan ( cyan )
m           magenta
y            yellow ( amarela )
k            black ( preta )
w           white ( branca )

 

Matplotlib Estilo de Linha

Matplotlib tem 4 estilos de linha integrados:

Line Style

-    Matplotlib Line Chart - Line Style - '_'

--    Matplotlib Line Chart - Line Style - '--'

:    Matplotlib Line Chart - Line Style - ':'

:-    Matplotlib Line Chart - Line Style - '-.'
 

Matplotlib espessura da linha

Você pode especificar a largura da linha com o parâmetro linewidth.

linewidth = 2 # unit is points

ou simplesmente use sua abreviatura,

lw = 2

 

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,2,3,4,5,6,7,8,9,10]

plt.plot(x, y, "r--", linewidth=5)
plt.title('Grafico usando Python')
plt.xlabel('Valores do eixo X')
plt.ylabel('Valores do eixo Y')

plt.show()


 

Python Matplotlib - Como criar grafico de barras ( Bar chart ) em matplotlib

Podemos criar gráficos de barras usando Matplotlib. Um gráfico de barras mostra os valores como barras verticais, onde a posição de cada barra indica o valor que representa. O matplot visa facilitar ao máximo a transformação de dados em gráficos de barras.

 

Gráfico de Barras Verticais Matplotlib

import matplotlib.pyplot as plt

x = ['Python', 'C++', 'Java', 'Dart', 'C#', 'JavaScript']
y = [51,62,63,54,65,65]

#plt.plot(x, y, "r--")
plt.bar(x, y, align='center', alpha=0.5)

plt.title("Bar chart", fontdict={'family': 'monospace', 'color' : 'red','weight': 'bold','size': 16},loc='center')

plt.xlabel('Linguagens de programação')
plt.ylabel('Pontuações')

plt.show()


 

Gráfico de Barras Horizontais Matplotlib

import matplotlib.pyplot as plt

x = ['Python', 'C++', 'Java', 'Dart', 'C#', 'JavaScript']
y = [51,62,63,54,65,65]

#plt.plot(x, y, "r--")
plt.barh(x, y, align='center', alpha=0.5)

plt.title("Bar chart", fontdict={'family': 'monospace', 'color' : 'red','weight': 'bold','size': 16},loc='center')


plt.xlabel('Linguagens de programação')
plt.ylabel('Pontuações')

plt.show()



 

Comparação do gráfico de barras Matplotlib

import numpy as np
import matplotlib.pyplot as plt

# data to plot
n = 4
valores_A = [800, 655, 540, 265]
valores_B = [950, 562, 454, 620]

# create plot
fig, ax = plt.subplots()
index = np.arange(n)

bar_width = 0.35
opacity = 0.8

bar_A = plt.bar(index, valores_A, bar_width, alpha=opacity, color='r', label='Angola')
bar_B = plt.bar(index + bar_width, valores_B, bar_width, alpha=opacity, color='y', label='Brazil')

plt.xlabel('Fatos reais')
plt.ylabel('Valores')
plt.title('Estatísticas por país')
plt.xticks(index + bar_width, ('A', 'B', 'C', 'D'))
plt.legend()

plt.show()

 




Gráfico de barras empilhadas

import matplotlib.pyplot as plt

# dados para plotar
x = ['A', 'B', 'C', 'D']
y1 = [2100, 1120, 1110, 2130]
y2 = [1120, 1125, 1115, 1125]

# plot gráfico de barras empilhadas

plt.bar(x, y1, color='r')
plt.bar(x, y2, bottom=y1, color='y')
plt.show()

plt.show()

 


Python Matplotlib - Como criar gráfico de Histograma no Matplotlib

Matplotlib pode ser usado para criar histogramas. Um histograma mostra a frequência no eixo vertical e o eixo horizontal é outra dimensão.

Normalmente possui pinos, onde cada caixa tem um valor mínimo e máximo. Cada caixa também tem uma frequência entre x e infinita.

Bin a faixa de valores.

Muitas coisas podem ser adicionadas a um histograma, como uma linha de ajuste, rótulos e assim por diante. O código abaixo cria um histograma mais avançado.

 

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

np.random.seed(10**7)
mu = 121
sigma = 21
x = mu + sigma * np.random.randn(1000)

num_bins = 100

n, bins, patches = plt.hist(x, num_bins, density = 1, color ='red', alpha = 0.7)

y = ((1 / (np.sqrt(2 * np.pi) * sigma)) * np.exp(-0.5 * (1 / sigma * (bins - mu))**2))

plt.plot(bins, y, '--', color ='black')

plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')

plt.title('Exemplo-1 de histograma Matplotlib',fontweight ="bold")

plt.show()



Python Matplotlib - Como criar gráfico de pizza Matplotlib ( pie chart )

Matplotlib oferece suporte a gráficos de pizza usando a função pie (). O módulo matplotlib pode ser usado para criar todos os tipos de gráficos e gráficos com Python. Um gráfico de pizza é um dos gráficos que ele pode criar, mas é um entre muitos.

 

import matplotlib.pyplot as plt

# Dados para plotar
labels = 'Angola', 'Brazil', 'Portugal', 'Cabo Verde'
tamanhos = [1215, 2130, 2245, 2210]

# definições
colors = ['lightcoral','gold', 'yellowgreen',  'lightskyblue']

# explodir 1ª fatia
explode = (0.1, 0, 0, 0)  

# Plot
plt.pie(tamanhos, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)

plt.axis('equal')
plt.show()

 



Você pode definir seus tamanhos, quais partes devem explodir (distância do centro), quais rótulos ele deve ter e quais cores deve ter.

Como colocar legenda no gráfico de pizza no Matplotlib

para o atributo loc, indica o local onde a legenda será mostrada no gráfico, seus valores são:

best , upper right , upper left, lower left , lower right , right , center left, center right , lower center , upper center , center

 

import matplotlib.pyplot as plt

# Dados para plotar
labels = 'Angola', 'Brazil', 'Portugal', 'Cabo Verde'
tamanhos = [1215, 2130, 2245, 2210]

# definições
colors = ['lightcoral','gold', 'yellowgreen',  'lightskyblue']

# explodir 1ª fatia
explode = (0.1, 0, 0, 0)  

# Plot
plt.pie(tamanhos, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)

plt.legend(labels, loc="upper right")

plt.axis('equal')
plt.show()


Como salvar figura em Matplotlib 

Se você deseja salvar figuras matplotlib como arquivos individuais, você pode fazer isso com a função savefig. Se você deseja salvar as figuras em um único arquivo, use a função salvar como.

Matplotlib - Como salvar uma figura

Para quem não sabia, matplotlib savefig cria um arquivo da figura atual como PNG (com transparência) e salva em seu sistema de arquivos.

Portanto, Matplotlib pode salvar plotagens diretamente em um arquivo usando savefig()

Savefig é útil quando você precisa salvar uma figura para visualização fora de matplotlib, como em outro programa, ou quando você deseja usar um programa de gráficos vetoriais (Inkscape, Illustrator, etc.) para modificá-la.

Também é útil se você deseja salvar uma cópia de uma figura no mesmo diretório do seu script matplotlib.

O método pode ser usado assim:

import matplotlib.pyplot as plt

# Dados para plotar
labels = 'Angola', 'Brazil', 'Portugal', 'Cabo Verde'
tamanhos = [1215, 2130, 2245, 2210]

# definições
colors = ['lightcoral','gold', 'yellowgreen',  'lightskyblue']

# explodir 1ª fatia
explode = (0.1, 0, 0, 0)  

# Plot
plt.pie(tamanhos, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)

# Criando legenda
plt.legend(labels, loc="upper right")
plt.axis('equal')

# Salvando a figura
plt.savefig('test.png')

plt.show()

 

Ele pode fazer uma imagem da figura. Ele decide o formato da imagem com base na extensão. Por exemplo, para salvar uma imagem jpg chamada test.jpg. A imagem da figura deve ter extensão jpg, png ou pdf.

Opções adicionais de savefig

Uma série de novas opções de savefig foram adicionadas ao matplotlib. A compatibilidade com versões anteriores é mantida.

As opções são:

savefig(filename, dpi=None, format='png', bbox_inches='tight', pad_inches=0.2, bbox=None, pad=None, dashes=None, loc='upper left', rot=0, vmax='I', vmin='I', hmax='I', hmin='I')

import matplotlib.pyplot as plt

# Dados para plotar
labels = 'Angola', 'Brazil', 'Portugal', 'Cabo Verde'
tamanhos = [1215, 2130, 2245, 2210]

# definições
colors = ['lightcoral','gold', 'yellowgreen',  'lightskyblue']

# explodir 1ª fatia
explode = (0.1, 0, 0, 0)  

# Plot
plt.pie(tamanhos, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)

# Criando legenda
plt.legend(labels, loc="upper right")
plt.axis('equal')

# Salvando a figura
plt.savefig('test.png', dpi=None, format='png', bbox_inches='tight', pad_inches=0.2, bbox=None, pad=None, dashes=None, loc='upper left', rot=0, vmax='I', vmin='I', hmax='I', hmin='I')


plt.show()

 

Python Matplotlib - Galeria de estilo Matplotlib

Matplotlib também nos oferece vários estilos de visualização que podemos usar em nossos gráficos, e aqui veremos como podemos aplicar esses estilos aos nossos gráficos.
Para usar alguns dos estilos que o Matplotlib oferece, simplesmente faremos uso do seguinte código:

plt.style.use('bmh')


Aqui estão alguns dos estilos definidos por Matplotlib.

http://tonysyu.github.io/raw_content/matplotlib-style-gallery/gallery.html

https://benalexkeen.com/bar-charts-in-matplotlib/