You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

matplotlib绘制日出日落图:plt.savefig保存时标注被裁剪求助

解决Matplotlib保存PNG时时间标注被裁剪的方案
  • 直接用plt.savefig的bbox_inches参数:
    保存图片时添加bbox_inches='tight',它会自动识别所有绘图元素的边界,把时间标注完整包含进去。示例代码:

    plt.savefig('sunrise_sunset.png', bbox_inches='tight', dpi=300)
    

    如果还有个别特殊标注没被覆盖,可通过bbox_extra_artists指定要包含的对象,比如x轴的时间刻度标签:

    import matplotlib.pyplot as plt
    # 你的绘图代码...
    x_ticks = plt.gca().get_xticklabels()
    plt.savefig('sunrise_sunset.png', bbox_extra_artists=[x_ticks], bbox_inches='tight')
    
  • 用tight_layout()自动调整边距:
    在绘图完成、保存图片前调用plt.tight_layout(),它会自动计算子图和各类元素的间距,避免裁剪。需要更宽松边距的话,可指定pad参数:

    plt.tight_layout(pad=2.0) # pad值越大,整体边距越宽
    plt.savefig('sunrise_sunset.png')
    
  • 手动精确调整子图边距:
    若之前用subplots_adjust没生效,可能是参数值设置得不够合理。试试更明确的数值:

    plt.subplots_adjust(left=0.12, right=0.98, bottom=0.15, top=0.95)
    plt.savefig('sunrise_sunset.png')
    

    可根据实际裁剪情况微调参数:比如底部标注被裁就增大bottom值,左侧被裁就增大left值。

  • 单独调整轴标签/刻度的位置:
    如果只是某一轴的时间标注被裁,比如x轴,可单独调整标签和刻度的内边距:

    ax = plt.gca()
    ax.set_xlabel('时间', labelpad=15) # labelpad控制标签与轴的距离
    ax.tick_params(axis='x', pad=10) # 调整刻度与轴的距离
    plt.savefig('sunrise_sunset.png')
    

内容的提问来源于stack exchange,提问作者PetGriffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:08:14