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

如何将Matplotlib等高线标签设置为图角图例而非沿轮廓线标注

等高线替换为角落图例的实现方案

直接移除原代码里的内嵌标签调用逻辑,将等高线对象传入图例接口即可实现,不需要额外构造自定义图例句柄。

修改后的可运行代码如下:

import numpy as np
import matplotlib.pyplot as plt

delta = 0.15
x = np.arange(1.5, 2.5, delta)
y = np.arange(1.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z = np.exp(X - Y)

# 绘制等高线
CS1 = plt.contour(X, Y, Z)

# 移除原有的clabel内嵌标注代码,替换为图例生成
plt.legend(
    handles=CS1.collections,
    labels=[str(round(level, 2)) for level in CS1.levels], # 这里可以自定义每个图例项的显示文字
    loc="upper right", # 控制图例位置,可按需修改为左上、左下、右下等方位
    title="等高线对应Z值"
)

plt.title('matplotlib.pyplot.contour() 图例示例')
plt.show()

可选调整项

  • 自定义图例文字:直接修改labels参数传入的字符串列表即可,和你之前给内嵌标签自定义文本的逻辑完全一致
  • 调整图例位置:修改loc参数即可,常用取值有upper left(左上)、lower left(左下)、lower right(右下);如果怕图例遮挡绘图内容,可以加参数bbox_to_anchor=(1.02, 1)把图例放到绘图区域外侧
  • 适配填充等高线:如果你后续用contourf绘制填充等高线,这套方法同样适用,把返回的等高线集合对象传入handles参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:30:50