Criação de gráficos com matplotlib

O Matplotlib é uma biblioteca amplamente utilizada em Python para criação de gráficos e visualizações de dados. Ele fornece uma ampla gama de recursos e flexibilidade para criar uma variedade de tipos de gráficos, desde gráficos simples até visualizações complexas.

A biblioteca Matplotlib é dividida em vários módulos principais, cada um com funcionalidades específicas, sendo o pyplot o principal deles.

matplotlib.pyplot: É a interface mais comumente usada para criar gráficos. A maioria das funções e comandos básicos para a criação de gráficos é encontrada neste módulo. Ele fornece uma maneira conveniente de criar e personalizar gráficos, como gráficos de linhas, barras, dispersão, histogramas e muito outros.

As principais funções para geração de gráficos

1) Importação da biblioteca:

import matplotlib.pyplot as pyplot

Gráfico de Barras

# Dados.
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 15]

# Criar gráfico.
pyplot.bar(x, y, color='gray', edgecolor='black', linewidth=1.2)
pyplot.title('Gráfico de barras')
pyplot.xlabel('Eixo x')
pyplot.ylabel('Eixo y')

# Exibir gráfico.
pyplot.show()

Saída:


Histograma

# Dados.
x = [10, 16, 18, 21, 26, 36, 40, 29, 30, 32]

# Criar gráfico.
pyplot.hist(x, bins=5, color='gray', edgecolor='black', linewidth=1.2)
pyplot.title('Gráfico de Histograma')
pyplot.xlabel('Eixo x')
pyplot.ylabel('Eixo y')

# Exibir gráfico.
pyplot.show()

Saída:


Dispersão

# Dados.
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [10, 24, 36, 40, 15, 27, 29, 30, 32]

# Criar gráfico.
pyplot.scatter(x, y, color='gray', edgecolors='black', linewidth=1.2)
pyplot.title('Gráfico de Dispersão')
pyplot.xlabel('Eixo x')
pyplot.ylabel('Eixo y')

# Exibir gráfico.
pyplot.show()

Saída:


Boxplot

# Dados.
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Criar gráfico.
pyplot.boxplot(x, patch_artist=True, boxprops=dict(facecolor='gray', color='black'))
pyplot.title('Gráfico de Boxplot')
pyplot.xlabel('Eixo x')

# Exibir gráfico.
pyplot.show()

Saída:


Densidade

# Gerando valores aleatórios.
np.random.seed(3000)
num_bins = 100
mu = 121
sigma = 21
x = mu + sigma * np.random.normal(size=1000)

# Criando o histograma.
n, bins, patches = pyplot.hist(x, num_bins,
                            density = 1,
                            color ='green',
                            alpha = 0.7)

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

# Criando a Curva de Densidade.
pyplot.plot(bins, y, '--', color ='black')

# Títulos.
pyplot.xlabel('X')
pyplot.ylabel('Y')
pyplot.title('Gráfico de Densidade')
 
pyplot.show()

Saída:


Setores

# Dados.
x = [10, 24, 36, 40, 15]
legenda = ['A', 'B', 'C', 'D', 'E']

# Criar gráfico.
pyplot.pie(x=y, labels=legenda)
pyplot.title('Gráfico de Setores')
pyplot.xlabel('Eixo x')

# Exibir gráfico.
pyplot.show()

Saída:


Gráfico 3D

# Dados
x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)

# Criando e Plotando o gráfico.
figura = pyplot.figure()
eixo = figura.add_subplot(1, 1, 1, projection = '3d')
eixo.scatter(x, y, z)

# Titulos.
eixo.set_xlabel('decrease')
eixo.set_ylabel('rowpos')
eixo.set_zlabel('colpos')
pyplot.title('Gráfico 3D')

Saída:


Inserir mais de gráfico em uma figura:

# Dados
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)

# Criando 1 figura.
pyplot.figure(1)

# Criando 4 gráficos(2x2)
pyplot.subplot(2,2,1)
pyplot.scatter(x, y)

pyplot.subplot(2,2,2)
pyplot.scatter(x, z)

pyplot.subplot(2,2,3)
pyplot.scatter(z, y, marker = '*')

pyplot.subplot(2,2,4)
pyplot.hist(x)

Saída:


Segue o link para acessar o código na integra: Código

Além desses módulos principais, o matplotlib também oferece suporte a recursos adicionais, como anotações, legendas, grade de fundo, eixos secundários e muito mais. Esses recursos podem ser explorados nas documentações oficiais do matplotlib, segue o link para a documentação oficial: Documentação.

Comentários

Formulário de contato

Nome

E-mail *

Mensagem *

Minha foto
Gustavo Câmara
Olá, meu nome é Gustavo e sou Analista de Dados, Desenvolvedor, Estudante de Engenharia de Software e apaixonado por tecnologia.

Postagens mais visitadas