imshow 的颜色条和轮廓重叠
Colorbar of imshow and contour overlapped
我正在尝试获取一个颜色条,其中包含 imshow 的值并且有 3 条轮廓线被过度绘制。 matplotlib 示例之一显示了一些接近的内容,但它们只有彩色轮廓。这张图片有一个我想要的类型的颜色条。
这是我的代码和图像,它只是忽略了 imshow 的 cmap 的颜色条。
plt.imshow(Bho, origin='l')
plt.contour(Bho, [300,400,500],origin='lower', colors=['white', 'yellow', 'red'])
plt.colorbar()
plt.show()
您缺少的是您还需要将返回的对象从 imshow
传递到您的颜色栏。我准备了一个最小工作示例,演示如何获取图像值和颜色条中定义的级别。
import numpy as np
import matplotlib.pyplot as plt
Bho = np.random.random(size=10000).reshape(100,100)
fig, ax = plt.subplots()
im = ax.imshow(Bho, origin='l')
_cs2 = ax.contour(Bho, levels=[0.2,0.4] ,origin='lower', colors=['white','red'])
cbar = fig.colorbar(im, ax=ax)
cbar.add_lines(_cs2)
plt.show()
结果
我正在尝试获取一个颜色条,其中包含 imshow 的值并且有 3 条轮廓线被过度绘制。 matplotlib 示例之一显示了一些接近的内容,但它们只有彩色轮廓。这张图片有一个我想要的类型的颜色条。
这是我的代码和图像,它只是忽略了 imshow 的 cmap 的颜色条。
plt.imshow(Bho, origin='l')
plt.contour(Bho, [300,400,500],origin='lower', colors=['white', 'yellow', 'red'])
plt.colorbar()
plt.show()
您缺少的是您还需要将返回的对象从 imshow
传递到您的颜色栏。我准备了一个最小工作示例,演示如何获取图像值和颜色条中定义的级别。
import numpy as np
import matplotlib.pyplot as plt
Bho = np.random.random(size=10000).reshape(100,100)
fig, ax = plt.subplots()
im = ax.imshow(Bho, origin='l')
_cs2 = ax.contour(Bho, levels=[0.2,0.4] ,origin='lower', colors=['white','red'])
cbar = fig.colorbar(im, ax=ax)
cbar.add_lines(_cs2)
plt.show()
结果