Python/Matplotlib - Colorbar范围和显示值

Sco*_*t B 29 python matplotlib contour colorbar

当使用带有等高线图的matplotlib时,我无法按照我的意愿显示颜色条.我已经阅读了许多类似的例子,但仍未能得到我想要的东西.

在下图中,我想要改变两件事.我希望最小值和最大值显示在颜色条上(最大值应为2.0,最小值为-0.1).这两个值应位于颜色条的最边缘.另外,我希望colorbar在每次颜色转换时显示值.例如.在下图中,在2.1和1.8之间,还有另一个颜色过渡,其中不显示该值.

谁能帮帮我吗?我想我可能需要使用规范,但到目前为止它对我没用.

谢谢,

在此输入图像描述

码:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

tom*_*m10 38

如果我理解你想要什么,我认为应该这样做:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

v = np.linspace(-.1, 2.0, 15, endpoint=True)
plt.contour(xi, yi, zi, v, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, v, cmap=plt.cm.jet)
x = plt.colorbar(ticks=v)
print x
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述