如何缩小matplotlib图表尺寸以完整显示较长的坐标轴文本?

你遇到的问题本质是绘图区域(axes)占整个画布的比例过高,没有给x轴标签预留足够的显示空间,修改figsize仅调整了画布整体尺寸,窗口拉伸时绘图区域会等比例放大,因此还是会出现标签被裁剪的情况。
方法1:调整子图底部边距(最简便)
通过subplots_adjust调整底部预留空间,数值越大,绘图区域越靠上、本身尺寸越小,预留的标签显示空间越多:
import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(10, 6)) # 此处填写你的绘图逻辑 plt.subplots_adjust(bottom=0.25) # 可根据x轴标签长度调整数值,取值范围为0-1 plt.show()
方法2:手动指定绘图区域尺寸和位置
如果需要精确控制图表本身的大小,可以直接创建指定比例的axes对象,参数[left, bottom, width, height]均为相对于画布的比例值:
fig = plt.figure(figsize=(10, 6)) # width设为0.75代表绘图区域宽度为画布的75%,height设为0.6代表高度为画布的60% ax = fig.add_axes([0.1, 0.25, 0.75, 0.6]) # 此处填写你的绘图逻辑 plt.show()
导出图片避免裁剪
如果需要保存图片到本地,添加bbox_inches='tight'参数会自动将所有标签元素纳入保存范围,避免导出后标签缺失:
plt.savefig("output.png", bbox_inches="tight", dpi=300)
内容的提问来源于stack exchange,提问作者filifunk
相关产品推荐
相关产品推荐

