Como fazer uma parcela quadrada com eixos iguais em Matplotlib

  1. set_aspect() para fazer um terreno quadrado com eixos iguais
  2. axis() Método para Gerar Lote Quadrado

Podemos definir a relação de aspecto de um terreno utilizando o método set_aspect() para fazer um terreno quadrado e o método axis() também pode ser utilizado para fazer um terreno quadrado com eixos iguais em Matplotlib.

SIMPATIA PARA FAZER UMA PESSOA TOMA...
SIMPATIA PARA FAZER UMA PESSOA TOMAR NOJO DA OUTRA

set_aspect() para fazer um terreno quadrado com eixos iguais

Podemos definir a relação de aspecto utilizando a função matplotlib.axes.Axes.set_aspect(). Se utilizarmos "equal" como uma relação de aspecto na função, obtemos um gráfico com a mesma escala de pontos de dados para as unidades de gráfico dos eixos X e Y.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)
plt.xlim(-3,3)
plt.ylim(-3,3)

ax.set_aspect('equal', adjustable='box')

plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

gráfico quadrado com eixos iguais utilizando set_aspect to equal

plt.xlim(-3,3)
plt.ylim(-3,3)

ax.set_aspect('equal')

Define ambos os eixos X e Y para ter a mesma faixa. Em seguida, ax.set_aspect('equal') define ambos os eixos como iguais.

O método acima só produz um gráfico quadrado quando os intervalos para ambos os eixos são definidos para ser o mesmo. Para gerar um gráfico quadrado no caso geral, temos que definir manualmente a relação de aspecto utilizando o seguinte comando:

axes.set_aspect(1./axes.get_data_ratio())

axes.get_data_ratio() obtém a relação dos dados brutos do lote. O valor de seu recíproco é passado para set_aspect() para tornar os eixos iguais sem definir os limites dos eixos manualmente.

Código:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)

ax.set_aspect(1.0/ax.get_data_ratio(), adjustable='box')

plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

gráfico quadrado com eixos iguais utilizando set_aspect general

axis() Método para Gerar Lote Quadrado

Se passarmos o "square" como argumento para matplotlib.pyplot.axis(), cria-se um terreno quadrado onde as faixas para ambos os eixos ocupam o mesmo comprimento no terreno.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y=np.sin(x)
plt.plot(x, y)
plt.axis('square')
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

gráfico quadrado com eixos iguais utilizando o método dos eixosl

Advertência

A gama de eixos desta solução é selecionada automaticamente. É igual a ax.set_aspect('equal', adjustable='datalim'). Os limites explícitos dos eixos definidos pelo usuário não são respeitados.

Artigo relacionado - Matplotlib Axes

  • Como rodar o texto da etiqueta do eixo X em Matplotlib
  • Como definir o tamanho da fonte dos Rótulos em Matplotlib
  • Como adicionar uma etiqueta do eixo Y ao eixo Y secundário em Matplotlib
  • Como plotar eixos logarítmicos em Matplotlib