import numpy as np
import pylab as plt
# Create some sample data
dx = np.linspace(0,1,20)
X,Y = np.meshgrid(dx,dx)
Z = X**2 - Y
Z2 = X
plt.imshow(Z)
plt.colorbar()
plt.quiver(X,Y,Z2,width=.01,linewidth=1)
plt.colorbar()
plt.show()
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
两次。Pylab将创建一个与最新绘图匹配的新色条。注意,在您的示例中,箭袋值的范围是0,1,而imshow取负值。为了清晰起见(本例中没有显示),我将使用不同的颜色映射来区分这两种类型的绘图。运行quiver不一定返回
colorbar()
所需的可映射对象类型。我想可能是因为我显式地“根据另一个标量给向量场着色”,就像Heimdall说的那样。因此,胡克的回答对我不起作用。我必须创建自己的可映射的颜色栏来阅读。我使用
matplotlib.colors
中的Normalize
对我想要用来给箭袋向量上色的数据(我将称之为C
,它是一个与X
、Y
、U
和V
形状相同的数组)我的颤音是这样的:
为colorbar函数提供任何其他参数都会导致各种错误。
相关问题 更多 >
编程相关推荐