如何为轮廓图扩展 matplotlib 颜色条?

时间:2021-03-26 03:22:09

标签: python matplotlib

以下代码生成一个轮廓图。

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 的范围,但这不起作用。有什么建议吗?

1 个答案:

答案 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()])

enter image description here