我正在尝试在matplotlib中创建一个矢量图,并将一些颜色映射到特定的大小:例如,将大小在10到20之间的矢量绘制为蓝色,而在20到30之间绘制为rgb(0,15,40),以此类推。 barbs和quiver函数的文档(它们相似)提到了C输入参数:
barb(X,Y,U,V,C,**kw)
参数:
X,Y: barb位置的x和y坐标(默认为barb头部;请参见pivot kwarg)
U,V: 给出barb轴的x和y分量
C: 用于将颜色映射到barbs的可选数组
然而,这非常模糊,在Google上搜索了很久后,我仍然不知道如何以特定的方式使用这个颜色数组。我设法发现,通过将C设置为向量幅度的数组并指定“cmap”kwarg,它将映射barbs到指定的colormap,如下面的示例代码所示。但是,这不是我想要的。我想控制特定幅度组的颜色。任何帮助都将不胜感激。
示例代码:
注:该图片为IT技术相关内容。
barb(X,Y,U,V,C,**kw)
参数:
X,Y: barb位置的x和y坐标(默认为barb头部;请参见pivot kwarg)
U,V: 给出barb轴的x和y分量
C: 用于将颜色映射到barbs的可选数组
然而,这非常模糊,在Google上搜索了很久后,我仍然不知道如何以特定的方式使用这个颜色数组。我设法发现,通过将C设置为向量幅度的数组并指定“cmap”kwarg,它将映射barbs到指定的colormap,如下面的示例代码所示。但是,这不是我想要的。我想控制特定幅度组的颜色。任何帮助都将不胜感激。
示例代码:
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()
生成的绘图图片链接:(抱歉,目前无法直接发布图片)
http://i49.tinypic.com/xombmc.jpg
注:该图片为IT技术相关内容。