我正在尝试在 matplotlib 中绘制等高线图。为了更加清晰,我希望在图中以一定的间隔打印标签,但我无法这样做。我怎样才能做到这一点?
以下 matlab 图每条轮廓线有多个标签:
但是,在 matplotlib 中,每条等高线仅获得一个标签。
如何在 matplotlib 中获取多个标签?
您只需再次粘贴标签即可:
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 链接生成的数据的输出。
除了@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)