2012-07-13 6 views
4

matplotlib에 barb 벡터 플롯을 만들고 특정 색상으로 일부 색상을 매핑하려고합니다. 예를 들어 크기가 10 ~ 20 인 벡터를 파란색으로 표시하려면, 20 ~ 30 사이의 값은 rgb (0,15,40)입니다.Python matplotlib barbs/quiver는 서로 다른 값 집합에 색상을 매핑합니다.


미늘 (X, Y, U, V, C, ** kw)

인수 :

미늘과 떨림 기능에 대한 설명서 (이들이 유사) C 입력 ARG 언급

X, Y : X 및 미늘 위치의 y 좌표 (디폴트는 바브의 헤드이다 피봇 kwarg 참조)

U, V : 는 미늘 샤프트의 X 및 Y 구성 요소를 제공

,451,515,

C :


그러나,이 매우 모호하다 미늘에 색상을 매핑하는 데 사용되는 선택적인 배열, 그리고 모든 Google을 통해 검색 한 후, 나는 별이 색 배열을 사용하는 방법을 이해하는 데 더 가까이가 아니야 방법. C를 벡터 크기의 배열과 동일하게 설정하고 "cmap"kwarg를 지정하면 아래 예제 코드에서와 같이 barb를 지정된 색상 표에 매핑한다는 것을 발견했습니다. 그러나 이것은 내가 원하는 것이 아닙니다. 나는 특정 집단의 색채를 제어하고 싶다. 어떤 도움을 주시면 감사하겠습니다.

예제 코드 :

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

답변

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

Perfect를 살펴보십시오. 고맙습니다. –

관련 문제