Python matplotlib倒钩/箭袋将颜色映射到不同的值集

Python matplotlib倒钩/箭袋将颜色映射到不同的值集,python,vector,colors,matplotlib,Python,Vector,Colors,Matplotlib,我试图在matplotlib中创建倒钩向量图,并将一些颜色映射到特定的大小:例如,将大小介于10和20之间的向量绘制为蓝色,将大小介于20和30之间的向量绘制为rgb(0,15,40),等等。倒钩和箭袋功能的文档(它们类似)提到了C输入参数: 倒钩(X、Y、U、V、C,**千瓦) 论据: 十、 Y: 倒钩位置的x和y坐标(默认为倒钩头部;请参见pivot kwarg) U、 五: 给出倒钩轴的x和y分量 C: 用于将颜色映射到倒钩的可选阵列 然而,这是非常模糊的,在谷歌搜索了所有地方之后,我

我试图在matplotlib中创建倒钩向量图,并将一些颜色映射到特定的大小:例如,将大小介于10和20之间的向量绘制为蓝色,将大小介于20和30之间的向量绘制为rgb(0,15,40),等等。倒钩和箭袋功能的文档(它们类似)提到了C输入参数:


倒钩(X、Y、U、V、C,**千瓦)

论据:

十、 Y: 倒钩位置的x和y坐标(默认为倒钩头部;请参见pivot kwarg)

U、 五: 给出倒钩轴的x和y分量

C: 用于将颜色映射到倒钩的可选阵列


然而,这是非常模糊的,在谷歌搜索了所有地方之后,我还没有进一步了解如何以特定的方式使用这个颜色数组。我设法发现,通过将C设置为向量大小的数组并指定“cmap”kwarg,它将倒钩映射到指定的颜色映射,如下面的示例代码所示。然而,这不是我想要的。我想控制特定数量级组的颜色。任何帮助都将不胜感激

示例代码:

from matplotlib import pyplot as plt
from numpy import arange,meshgrid,sqrt

u,v = arange(-50,51,10),arange(-50,51,10)
u,v = meshgrid(u,v)
x,y = u,v
C = sqrt(u**2 + v**2)
plt.barbs(x,y,u,v,C,cmap=plt.cm.jet)
plt.show()
结果打印图像链接:(抱歉,现在还不能直接发布图像)


您可以通过对地图进行离散化来获得它

import matplotlib as mpl 
import pyplot as plt
from numpy import arange,meshgrid,sqrt

u,v = arange(-50,51,10),arange(-50,51,10)
u,v = meshgrid(u,v)
x,y = u,v
C = sqrt(u**2 + v**2)
cmap=plt.cm.jet
bounds = [10, 20, 40, 60]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
img=plt.barbs(x,y,u,v,C,cmap=cmap,norm=norm)
plt.colorbar(img, cmap=cmap, norm=norm, boundaries=bounds, ticks=bounds)
plt.show()

您可以对颜色贴图进行离散化。看看