如何将Matplotlib子图整体右移,增加X轴零点左侧空间?
实现Matplotlib子图非对称X轴边距
你可以通过给margins()方法传入元组参数分别设置X轴的左右边距,替代单一的对称边距值,这样就能在X轴零点左侧留出更多空间,同时保持右侧边距不变或按需调整。
因为你的子图设置了sharex=True,只需要对其中一个子图设置非对称边距,另一个会自动同步(也可以分别设置,效果一致)。
修改后的代码示例:
import matplotlib.pyplot as plt x = [0, 1, 2, 3] y = [1, 3, 4, 2] fig, ax = plt.subplots(2, sharex=True) ax[0].plot(x, y) ax[1].plot(x, y) # 传入元组(x左边距, x右边距),左边设为0.5,右边设为0.1,可按需调整数值 ax[0].margins(x=(0.5, 0.1)) plt.show()
如果需要更精确的控制,也可以手动设置X轴的显示范围:
# 获取当前X轴范围 x_min, x_max = ax[0].get_xlim() # 向左扩展左边范围,比如在原有最小值基础上减去1,右边保持不变 ax[0].set_xlim(x_min - 1, x_max)
内容的提问来源于stack exchange,提问作者Pedro
相关产品推荐
相关产品推荐

