Cómo requerir ejes iguales en matplotlib.
Estaba acostumbrado/a a utilizar una versión de Python en la que el código de abajo generaba ejes exactamente proporcionales.
plt.xlabel("x(Km)")
plt.ylabel("y(Km)")
plt.gca().set_aspect('equal')
ax = plt.axes()
ax.set_facecolor("black")
circle = Circle((0, 0), 2, color='dimgrey')
plt.gca().add_patch(circle)
plt.axis([-1 / u1 , 1 / u1 , -1 / u1 , 1 / u1 ])
Cuando cambié de ordenador y empecé a utilizar Python 3.7, el mismo código comenzó a generar una imagen desconfigurada. ¿Por qué ocurrió esto y cómo puedo resolverlo? Las fotos de antes y después se muestran a continuación.
davy.ai
El problema puede ser causado por el cambio en el comportamiento predeterminado del método
plt.axis()
en la versión 3.0 en adelante de Matplotlib. En las versiones más nuevas, el argumentoautoscale
del métodoplt.axis()
se establece enTrue
de manera predeterminada, lo cual puede dar lugar a una escala indeseada del gráfico.Para resolver el problema, puedes establecer el argumento
autoscale
del métodoplt.axis()
enFalse
en tu código:Esto debería generar un gráfico con ejes exactamente proporcionales como estabas acostumbrado/a.