twinx e twiny em Matplotlib

Suraj Joshi 15 fevereiro 2024
  1. matplotlib.axes.Axes.twinx() em Python Matplotlib
  2. matplotlib.axes.Axes.twiny() em Matplotlib Python
  3. Matplotlib Utilizar twinx() e twiny() Juntos
twinx e twiny em Matplotlib

Este tutorial explica como podemos criar eixos duplos em Matplotlib com eixo X ou eixo Y comuns utilizando matplotlib.axes.Axes.twinx() e matplotlib.axes.Axes.twiny() em Python.

matplotlib.axes.Axes.twinx() em Python Matplotlib

A função matplotlib.axes.Axes.twinx()cria outros eixos numa figura Matplotlib partilhando o comum X-eixo com os eixos iniciais.

import matplotlib.pyplot as plt

students = ["Anil", "Sohit", "Hrishav", "Ayush", "Sunil"]
heights_in_cms = [165, 160, 140, 150, 130]

fig, axes = plt.subplots()
fig.set_size_inches(8, 6)
axes.bar(students, heights_in_cms)
y1, y2 = axes.get_ylim()
axes.set_xlabel("Students", fontsize=12)
axes.set_ylabel("Height in cms", fontsize=12)

twin_axes = axes.twinx()
twin_axes.set_ylim(y1 * 0.394, y2 * 0.394)
twin_axes.set_ylabel("Height in Inches", fontsize=12)

fig.suptitle("Plot using matplotlib.axes.Axes.twinx()", fontsize=15)
plt.show()

Resultado:

Plot com matplotlib.axes.Axes.twinx()

Cria um enredo de bar com a altura dos estudantes. As etiquetas do eixo Y à esquerda representam a altura dos estudantes em cm, enquanto as etiquetas do eixo Y à direita representam a altura dos estudantes em inches.

Neste caso, criamos um novo eixo, twin_axes, partilhando o eixo X com os axes. O eixo Y de axes tem a sua etiqueta definida para Height in cms, enquanto que o eixo Y de twin_axes está definido para Height in Inches.

matplotlib.axes.Axes.twiny() em Matplotlib Python

A função matplotlib.axes.Axes.twiny() cria outros eixos numa figura Matplotlib partilhando o eixo Y comum com os eixos iniciais.

import matplotlib.pyplot as plt

distance_in_kms = [10, 20, 30, 40, 50]
fare_in_dollars = [2, 3.5, 5, 7, 10]

fig, axes = plt.subplots()
fig.set_size_inches(10, 8)
axes.plot(distance_in_kms, fare_in_dollars)
x1, x2 = axes.get_xlim()
axes.set_xlabel("Distance in kms", fontsize=12)
axes.set_ylabel("Fare ($)", fontsize=12)

twin_axes = axes.twiny()
twin_axes.set_xlim(x1 * 0.62, x2 * 0.62)
twin_axes.set_xlabel("Distance in miles", fontsize=12)

fig.suptitle("Plot using matplotlib.axes.Axes.twiny()", fontsize=15)
plt.show()

Resultado:

Lote utilizando matplotlib.axes.Axes.twiny()

Criamos um novo eixo, twin_axes, partilhando o eixo Y com os axes. O eixo X de axes tem a sua etiqueta definida para Distance in kms, enquanto o eixo X de twin_axes está definido para Distance in miles.

Matplotlib Utilizar twinx() e twiny() Juntos

import matplotlib.pyplot as plt

distance_in_kms = [10, 20, 30, 40, 50]
fare_in_dollars = [2, 3.5, 5, 7, 10]

fig, axes = plt.subplots()
fig.set_size_inches(10, 8)
axes.plot(distance_in_kms, fare_in_dollars)
x1, x2 = axes.get_xlim()
y1, y2 = axes.get_ylim()
axes.set_xlabel("Distance in kms", fontsize=12)
axes.set_ylabel("Fare ($)", fontsize=12)

twin_axes = axes.twinx().twiny()

twin_axes.set_ylim(y1 * 0.85, y2 * 0.85)
twin_axes.set_ylabel("Fare in Euros", fontsize=12)

twin_axes.set_xlim(x1 * 0.62, x2 * 0.62)
twin_axes.set_xlabel("Distance in miles", fontsize=12)

fig.suptitle("Matplotlib use twinx() and twiny() together", fontsize=15)
plt.show()

Resultado:

Matplotlib usar twinx() e twiny() juntos

Cria uma figura Matplotlib com marcas de tiquetaque em todos os lados da figura. Os axes controlarão o eixo X esquerdo e o eixo Y inferior, enquanto que os twin_axes controlarão o eixo X direito e o eixo Y superior.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn