Matplotlib:如何调整已有Figure与Axis的尺寸?
调整Matplotlib中已创建Figure和Axis的尺寸
问题场景
尝试直接修改fig.figsize属性来调整已创建Figure的尺寸,但该操作无法生效,示例代码如下:
fig, ax = plt.subplots(figsize=(3,3)) # 初始(3,3)尺寸的figure ax.plot(range(10)) fig.savefig("33.pdf") # 尝试调整为(6,3)尺寸,无效 fig.figsize=(6,3) ax.plot(range(10)) fig.savefig("63.pdf")
解决方案
1. 调整整个Figure的尺寸
不能直接赋值fig.figsize,需调用fig.set_size_inches()方法来修改已创建Figure的尺寸,若轴布局需要适配新尺寸,可搭配tight_layout()优化:
fig, ax = plt.subplots(figsize=(3,3)) ax.plot(range(10)) fig.savefig("33.pdf") # 正确调整Figure为(6,3)尺寸 fig.set_size_inches(6, 3) # 适配新尺寸的布局调整(可选) fig.tight_layout() ax.plot(range(10)) fig.savefig("63.pdf")
2. 单独调整Axis的尺寸与位置
若需仅修改Axis的大小或位置,可使用ax.set_position()方法,传入一个[左, 底, 宽, 高]的列表(数值为Figure坐标系下的比例,范围0-1):
# 示例:将轴设置为占Figure宽度80%、高度70%,位置居中偏下 ax.set_position([0.1, 0.15, 0.8, 0.7])
内容的提问来源于stack exchange,提问作者jjjjjj
相关产品推荐
相关产品推荐

