2012-07-13 44 views
4

我试图创建在matplotlib倒钩向量图和一些颜色映射到特定程度的:例如,以具有载体带10和20之间的幅度绘制为蓝色,和rgb(0,15,40)之间的20和30之间,等等。为倒钩和颤动功能的文件(它们是相似的)提到的C输入ARG:的Python matplotlib倒钩/颤动地图的颜色不同组值


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

参数:

X,Y: x和倒钩位置的y坐标(默认为倒钩的头部;参见枢轴kwarg)

U,V: 给倒钩轴的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() 

所得的情节图片链接:(抱歉不能发表图片直接尚)

http://i49.tinypic.com/xombmc.jpg

+0

可以离散的颜色表。看看http://matplotlib.sourceforge.net/examples/api/colorbar_only.html – imsc 2012-07-13 21:44:56

回答

2

您可以通过离散化地图得到它。

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() 

enter image description here

+0

完美。谢谢。 – 2012-07-14 02:37:35