以下代码生成一个轮廓图。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10)
X, Y = np.meshgrid(x, x)
F = np.sin(X)*np.cos(Y)
v = np.linspace(-2, 2,10)
plt.contourf(X, Y, F, 500)
cb = plt.colorbar()
F
的范围从 -1 到 1,所以我的颜色条将这些作为其最小值和最大值。我希望颜色条的范围从 -2 到 2。我试图将刻度设置为从 -2 到 2 的范围,但这不起作用。有什么建议吗?
答案 0 :(得分:0)
如果您手动创建颜色条则有效:
import numpy as np
import matplotlib as mpl
x = np.linspace(0,10)
X, Y = np.meshgrid(x, x)
F = np.sin(X)*np.cos(Y)
v = np.linspace(-2, 2,10)
f, ax = plt.subplots()
cont = ax.contourf(X, Y, F, 500, vmin=-2, vmax=2, ticks=v)
cax, _ = mpl.colorbar.make_axes(ax)
cbar = mpl.colorbar.ColorbarBase(cax, cmap=cont.cmap, norm=cont.norm)
cbar.set_ticks([v.min(), *np.linspace(F.min(), F.max(), 11), v.max()])