如何在Matplotlib中限制轴范围,截断超出等值线范围的折线?
解决Matplotlib折线超出轴范围的显示问题
要让折线仅显示X、Y对应的轴范围,无需修改A、B数组,只需两步操作:
- 获取X、Y数组的数值范围,将其设为坐标轴的显示边界
- 确保折线开启裁剪功能(Matplotlib默认开启,显式声明更稳妥)
修改后的代码如下:
figure, (ax1, ax3, ax4) = plt.subplots(3) ax1.set_yscale("linear") ax1.set_xscale("linear") # 获取X、Y的数值范围,锁定坐标轴显示边界 x_min, x_max = X.min(), X.max() y_min, y_max = Y.min(), Y.max() ax1.set_xlim(x_min, x_max) ax1.set_ylim(y_min, y_max) # 绘制折线时开启裁剪,超出轴范围的部分会自动隐藏 ax1.plot(A,B,color='black', clip_on=True) cax = ax1.contourf(X,Y,Z) cbar= figure.colorbar(cax) # rest of code
说明
ax1.set_xlim和ax1.set_ylim将坐标轴范围严格限定在X、Y的数值区间内,这是你需要的显示边界clip_on=True会让Matplotlib自动裁剪掉折线超出当前坐标轴范围的部分,完全不需要手动调整A、B数组的内容
如果仍有超出部分显示,检查是否存在其他修改坐标轴范围的代码,也可以尝试将设置轴范围的代码放在绘制折线之后(通常顺序不影响,但调整后能解决极少数特殊场景的问题)。
内容的提问来源于stack exchange,提问作者Von
相关产品推荐
相关产品推荐

