运行 quiver 不一定会返回所需的可映射对象类型colorbar()
。我认为这可能是因为我明确地“根据另一个标量对矢量场进行了着色”,就像 Heimdall 所说的那样。因此,Hooked 的回答对我不起作用。
我必须创建自己的可映射颜色条才能读取。我通过使用Normalize
frommatplotlib.colors
数据来为我的箭袋矢量着色(我将其称为,它是一个与、、和C
具有相同形状的数组。)X
Y
U
V
我的颤抖电话看起来像这样:
import matplotlib.pyplot as pl
import matplotlib.cm as cm
import matplotlib.colors as mcolors
import matplotlib.colorbar as mcolorbar
pl.figure()
nz = mcolors.Normalize()
nz.autoscale(C)
pl.quiver(X, Y, U, V, color=cm.jet(nz(C)))
cax,_ = mcolorbar.make_axes(pl.gca())
cb = mcolorbar.ColorbarBase(cax, cmap=cm.jet, norm=nz)
cb.set_label('color data meaning')
给 colorbar 函数提供任何其他参数给了我各种错误。