在 pcolormesh 上叠加轮廓颜色条

我有以下 python 代码:


import numpy as np

import matplotlib.pyplot as plt


x = np.linspace(0, 10, 100)

y = np.linspace(0, 10, 100)

X, Y = np.meshgrid(x, y, indexing='ij')

Z = np.sin(X+Y)


plt.pcolormesh(X, Y, Z)

plt.colorbar()

plt.contour(X, Y, Z, levels=[0.5, 0.75], colors=['black','cyan'])


plt.show()

给出以下输出:

https://img1.sycdn.imooc.com/656ec96e00015c3106050317.jpg

我想将轮廓标记放置在颜色条上,如下所示:

https://img1.sycdn.imooc.com/656ec9780001b05105360301.jpg

我已经进行了实验和阅读,但我找不到一种方法可以有效地在同一颜色条上绘制两个数量。



喵喵时光机
浏览 68回答 1
1回答

泛舟湖上清波郎朗

plt.colorbar返回一个colorbar对象,您可以从中获取它使用 绘制的轴.ax。从那里开始,事情应该很简单:plt.pcolormesh(X, Y, Z)cb = plt.colorbar()plt.contour(X, Y, Z, levels=[0.5, 0.75], colors=['black','cyan'])ax = cb.axxmin, xmax = ax.get_xlim()ax.hlines([0.5, 0.75], xmin, xmax, colors=['black','cyan'], linewidth=5)输出:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python