Gráficos com Dois Eixos-Y no Python

Ok, eu acabei de escrever um artigo falando para que você não utilize gráficos com dois eixos-y. Esse uso é desonesto, leva o leitor a interpretar de forma equivocada os dados. Se quiser entender melhor, leia o post O Problema com Dois Eixos-Y. Mas vamos supor que seu chefe mande você fazer isso, ele não se importa com esses problemas. Eu vou te deixar na mão? Claro que não. Abaixo, você encontra os códigos que utilizei para gerar os gráficos do post anterior.

Primeiro, um gráfico simples em matplotlib:

import matplotlib.pyplot as plt

plt.plot([5103020100, 5473080100, 4003020100, 6053340120, 8104020150], label='Country X')

plt.plot([10300100, 17300100, 20300100, 20534020, 32040010], label='City Y')

plt.legend()

plt.show()

Agora, o mesmo gráfico, mas com dois eixos-y:

import matplotlib.pyplot as plt
data1 = [5103020100, 5473080100, 4003020100, 6053340120, 8104020150]
data2 = [10300100, 17300100, 20300100, 20534020, 32040010]

fig, ax1 = plt.subplots()

color = 'tab:blue'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('GDP Country X (trillion)', color=color)
ax1.plot(data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()

color = 'tab:orange'
ax2.set_ylabel('GDP City Y (million)', color=color) 
ax2.plot(data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout() 
plt.legend()
plt.show()

Outro gráfico com dois eixos-y:

import matplotlib.pyplot as plt
data1 = [5103020100, 5373080100, 5403020100, 5653340120, 5704020150]
data2 = [10300100, 17300100, 20300100, 26534020, 30040010]

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('GDP Country W (trillion)', color=color)
ax1.plot(data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx() 

color = 'tab:green'
ax2.set_ylabel('GDP City Z (million)', color=color) 
ax2.plot(data2,color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout() 
plt.legend()
plt.show()

Para brincar com as escalas dos eixos y, inclua o set_ylim:

import matplotlib.pyplot as plt
data1 = [5103020100, 5373080100, 5403020100, 5653340120, 5704020150]
data2 = [10300100, 17300100, 20300100, 26534020, 30040010]

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylim(5102020100, 5704020155)
ax1.set_ylabel('GDP Country W (trillion)', color=color)
ax1.plot(data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx() 

color = 'tab:green'
ax2.set_ylabel('GDP City Z (million)', color=color) 
ax2.set_ylim(1300100, 100040010)
ax2.plot(data2,color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout() 
plt.legend()
plt.show()

3 comentários em “Gráficos com Dois Eixos-Y no Python”

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *