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

如何为保存的matplotlib/seaborn图表添加角落对齐文本

Seaborn热力图添加画布固定位置角落文本实现方案

完整实现代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Jupyter环境请取消注释下一行实现内嵌显示
# %matplotlib inline

np.random.seed(2021)
data = pd.DataFrame(np.random.randint(0, 5, (3, 5)))\
.rename({0: "Supercalifragilisticexpialidocious",
         1: "Humuhumunukunukuapua'a",
         2: "Hippopotomonstrosesquipedaliophobia"
        })

# 可自定义画布尺寸
plt.figure(figsize=(10, 6))
sns.heatmap(data)

# 固定画布边距:left可根据最长y轴标签长度调整,预留足够左侧空间
plt.subplots_adjust(left=0.35, right=0.95, top=0.95, bottom=0.1)

# 添加四个角落固定位置文本
plt.figtext(0.01, 0.99, 'GHI', ha='left', va='top', fontsize=12) # 左上
plt.figtext(0.01, 0.01, 'JKL', ha='left', va='bottom', fontsize=12) # 左下
plt.figtext(0.99, 0.99, 'ABC', ha='right', va='top', fontsize=12) # 右上
plt.figtext(0.99, 0.01, 'DEF', ha='right', va='bottom', fontsize=12) # 右下

# 命令行环境取消注释下一行可弹出预览窗口
# plt.show()

# 保存图片,dpi可按需调整清晰度
plt.savefig("dave.png", dpi=300)

实现逻辑说明

  • 固定画布边距:通过plt.subplots_adjust(left=xxx)强制锁定左侧留白宽度,无论y轴标签长短,左侧都会预留固定空间放标注文本,避免左侧标注位移。如果y轴标签更长,只需调大left参数值即可。
  • figtext参数说明:
    • 前两个参数为画布归一化坐标,(0,0)对应画布左下角,(1,1)对应画布右上角
    • ha参数控制水平对齐方式:left表示文本左边缘对齐x坐标,right表示文本右边缘对齐x坐标
    • va参数控制垂直对齐方式:top表示文本顶部对齐y坐标,bottom表示文本底部对齐y坐标
    • 坐标设置为0.01/0.99是为了让文本和画布边缘保留少量空隙,避免被裁剪

附加需求解决

  • Jupyter Notebook显示:在代码开头添加%matplotlib inline魔法命令即可直接在单元格下方显示带标注的图表,如需交互功能可替换为%matplotlib notebook
  • 命令行弹出预览:在plt.savefig前添加plt.show()即可运行脚本时自动弹出预览窗口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:36:03