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

如何为密度图的等高线层级添加自定义个性化标签?

给Matplotlib等高线添加自定义个性化标签

没问题!要实现你想要的自定义等高线标签(比如带加粗和$\sigma$的样式),只需要在clabel()中通过fmt参数传入一个层级-标签映射字典就能轻松搞定。我帮你调整了代码,还补了示例数据方便直接运行:

import matplotlib.pyplot as plt
import numpy as np

# 生成示例数据(替换成你自己的X/Y/Z即可)
x = np.linspace(0, 5, 100)
y = np.linspace(0, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y) * 3 + 2  # 确保Z包含1、2这两个层级值

# 绘制指定层级的等高线
contours = plt.contour(X, Y, Z, levels=[1,2], colors='black')

# 定义自定义标签:键是等高线层级值,值是你想要的LaTeX格式标签
custom_label_map = {
    1: r'\textbf{1-}$\sigma$',
    2: r'\textbf{2-}$\sigma$'
}

# 应用自定义标签,inline=True让标签嵌入等高线内
plt.clabel(contours, inline=True, fmt=custom_label_map, fontsize=8)

plt.imshow(Z, extent=[0, 5, 0, 5], origin='lower', cmap='RdGy', alpha=0.5)
plt.colorbar()
plt.show()

关键说明:

  • 一定要让contour()的levels参数和自定义标签字典的键完全对应,这样才能精准匹配每个等高线层级。
  • 标签用LaTeX语法编写,matplotlib默认支持基础的数学符号渲染;如果需要完美显示加粗效果,确保你的环境已经配置了LaTeX渲染(比如安装了TeX Live或MiKTeX)。
  • fmt参数接受字典时,会自动遍历所有等高线层级,把默认的数字标签替换成你定义的个性化文本,比手动指定坐标更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:37