Criando Figuras com Matplotlib em Python

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório irá guiá-lo através do processo de criação de figuras com títulos, subtítulos e rótulos globais usando a biblioteca Matplotlib em Python. Você aprenderá como criar diferentes tipos de gráficos de oscilação e como adicionar um rótulo global x ou y a uma figura.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Criar um gráfico de oscilação amortecida e não amortecida

Primeiramente, criaremos uma figura com dois subplots, um para uma oscilação amortecida e outro para uma oscilação não amortecida. Usaremos a função np.linspace() para criar um array de valores de tempo e, em seguida, plotaremos os valores de amplitude correspondentes para cada tipo de oscilação usando as funções np.cos() e np.exp().

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.0, 5.0, 501)

fig, (ax1, ax2) = plt.subplots(1, 2, layout='constrained', sharey=True)
ax1.plot(x, np.cos(6*x) * np.exp(-x))
ax1.set_title('damped')
ax1.set_xlabel('time (s)')
ax1.set_ylabel('amplitude')

ax2.plot(x, np.cos(6*x))
ax2.set_xlabel('time (s)')
ax2.set_title('undamped')

fig.suptitle('Different types of oscillations', fontsize=16)

plt.show()

Adicionar rótulos globais x e y a uma figura

Em seguida, adicionaremos rótulos globais x e y a uma figura mostrando os preços relativos das ações de diferentes empresas ao longo do tempo. Usaremos a função np.genfromtxt() para ler um arquivo CSV contendo dados de preços de ações e, em seguida, plotaremos os dados para cada empresa usando subplots. Usaremos os métodos fig.supxlabel() e fig.supylabel() para adicionar rótulos globais x e y à figura.

from matplotlib.cbook import get_sample_data

with get_sample_data('Stocks.csv') as file:
    stocks = np.genfromtxt(
        file, delimiter=',', names=True, dtype=None,
        converters={0: lambda x: np.datetime64(x, 'D')}, skip_header=1)

fig, axs = plt.subplots(4, 2, figsize=(9, 5), layout='constrained',
                        sharex=True, sharey=True)
for nn, ax in enumerate(axs.flat):
    column_name = stocks.dtype.names[1+nn]
    y = stocks[column_name]
    line, = ax.plot(stocks['Date'], y / np.nanmax(y), lw=2.5)
    ax.set_title(column_name, fontsize='small', loc='left')
fig.supxlabel('Year')
fig.supylabel('Stock price relative to max')

plt.show()

Resumo

Neste laboratório, você aprendeu como criar figuras com títulos e subtítulos usando a biblioteca Matplotlib em Python. Você também aprendeu como adicionar rótulos globais x e y a uma figura. Essas habilidades são úteis para criar visualizações claras e informativas de dados.