Criando Gráficos com Escalas Diferentes

Beginner

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

Introdução

Neste laboratório, você aprenderá como criar gráficos com diferentes escalas em Python usando Matplotlib. Especificamente, você aprenderá como criar dois gráficos nos mesmos eixos com diferentes escalas à esquerda e à direita.

Dicas da 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ê.

Importar as Bibliotecas Necessárias

Antes de começarmos, vamos importar as bibliotecas necessárias. Usaremos Matplotlib e NumPy para este tutorial.

import matplotlib.pyplot as plt
import numpy as np

Criar Dados Fictícios (Mock Data)

Em seguida, criaremos alguns dados fictícios para usar em nossos gráficos. Usaremos numpy.arange para criar um array de valores variando de 0.01 a 10.0 com um passo de 0.01. Em seguida, usaremos numpy.exp e numpy.sin para criar dois conjuntos de dados.

## Create some mock data
t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)

Criar o Gráfico

Agora que temos nossos dados, podemos criar nosso gráfico. Começaremos criando um objeto de eixos usando matplotlib.pyplot.subplots(). Em seguida, plotaremos nosso primeiro conjunto de dados neste objeto de eixos e definiremos a cor do rótulo como vermelho.

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

Em seguida, instanciamos um segundo objeto de eixos que compartilha o mesmo eixo x que o primeiro objeto de eixos usando o método ax1.twinx(). Em seguida, plotaremos nosso segundo conjunto de dados neste novo objeto de eixos e definiremos a cor do rótulo como azul.

ax2 = ax1.twinx()

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

Finalmente, ajustaremos o layout do nosso gráfico usando o método fig.tight_layout() e o exibiremos usando matplotlib.pyplot.show().

fig.tight_layout()
plt.show()

Revisar o Gráfico

Reserve um momento para revisar o gráfico que foi criado. Observe como os dois conjuntos de dados têm escalas diferentes no eixo y. O primeiro conjunto de dados é plotado em vermelho e tem uma escala no lado esquerdo do gráfico, enquanto o segundo conjunto de dados é plotado em azul e tem uma escala no lado direito do gráfico.

Resumo

Parabéns! Você aprendeu como criar gráficos com diferentes escalas em Python usando Matplotlib. Especificamente, você aprendeu como criar dois gráficos nos mesmos eixos com diferentes escalas esquerda e direita, usando dois eixos diferentes que compartilham o mesmo eixo x. Você pode usar formatadores e localizadores matplotlib.ticker separados conforme desejado, pois os dois eixos são independentes.