Python3等高线绘图set_aspect的box-forced选项替代方案咨询
解决方案
Python3 搭配新版 Matplotlib 环境下,原 Python2 环境中ax1.set_aspect('equal', 'box-forced')的等效实现如下,可完全复现旧版的等比例显示、避免等高线/图像变形的效果:
- 直接替换参数即可,将旧写法里的第二个参数
'box-forced'替换为'box':
ax1.set_aspect('equal', 'box')
参数变更说明:Matplotlib 2.0 及之后版本正式移除了
'box-forced'这个可调参数取值,原参数对应的「强制调整坐标轴容器边界来满足等比例要求、不改动数据坐标范围、不会拉伸绘图内容」的逻辑被完整保留到'box'取值下,渲染效果和旧版完全一致。
- 如果部分版本直接传参出现兼容报错,可以拆分属性设置,显式指定可调模式,效果完全相同:
ax1.set_aspect('equal') ax1.set_adjustable('box')
注意:不要误用adjustable='datalim'参数,该模式会通过修改数据显示范围来适配比例,会出现等高线裁切、显示范围偏移的问题,不符合防变形的使用需求。
内容的提问来源于stack exchange,提问作者sadradio
相关产品推荐
相关产品推荐

