matplotlib如何设置等比例坐标轴 版本切换后绘图异常怎么解决
问题原因
你代码中的坐标轴操作顺序存在逻辑错误:你先调用plt.gca()获取当前坐标轴并设置了等比例属性,后续又调用plt.axes()生成了一个全新的空白坐标轴,之前设置的等比例配置直接被新坐标轴覆盖失效。
旧版本可以正常运行,是因为你之前环境配套的matplotlib版本较低,对重复创建坐标轴的处理逻辑存在容错,更换Python3.7后,配套的matplotlib版本调整了这块的处理逻辑,因此问题暴露。
解决方法
调整坐标轴操作顺序,先统一获取/创建坐标轴对象,再做所有属性配置即可,修正后代码如下:
import matplotlib.pyplot as plt from matplotlib.patches import Circle # 先获取全局坐标轴对象 ax = plt.gca() # 统一配置坐标轴属性 plt.ylabel("y(Km)") ax.set_aspect('equal') ax.set_facecolor("black") # 绘制图形元素 circle = Circle((0, 0), 2, color='dimgrey') ax.add_patch(circle) # 设置坐标轴范围(u1为你预先定义的变量,保留原有逻辑) plt.axis([-1 / u1 , 1 / u1 , -1 / u1 , 1 / u1 ]) plt.show()
如果调整顺序后仍存在异常,可以升级matplotlib到最新稳定版:pip install --upgrade matplotlib
效果对比
- 正常效果

- 异常效果

内容的提问来源于stack exchange,提问作者Isabella Nunes
相关产品推荐
相关产品推荐

