下面的代码生成了一个contourf图。
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的范围,但这不起作用。有什么建议吗?
发布于 2021-03-26 18:16:55
如果手动创建颜色栏,则会起作用:
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()])

https://stackoverflow.com/questions/66810589
复制相似问题