如何使用clabel标记多条轮廓线

问题描述 投票:0回答:2

我正在尝试在 matplotlib 中绘制等高线图。为了更加清晰,我希望在图中以一定的间隔打印标签,但我无法这样做。我怎样才能做到这一点?

以下 图每条轮廓线有多个标签:

MATLAB

但是,在 中,每条等高线仅获得一个标签。

matplotlib

如何在 matplotlib 中获取多个标签?

python matplotlib contour
2个回答
2
投票

您只需再次粘贴标签即可:

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)
ax.clabel(CS, [-1, 0.5,], inline=1, fontsize=10)
ax.clabel(CS, [0.5,], inline=1, fontsize=10)

这将为您提供轮廓上两个等级为 0.5 的标签。我不太明白控制它们位置的方法,但据我所知,它们似乎自动均匀分布。这是根据 this 链接生成的数据的输出。


1
投票

除了@krm提供的答案之外,您还可以使用

manual
选项来设置轮廓标签的位置。相关代码是:-

plt.figure()
CS = plt.contour(X, Y, Z)
manual_locations = [(-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4)]
plt.clabel(CS, inline=1, fontsize=10, manual=manual_locations)
© www.soinside.com 2019 - 2024. All rights reserved.