2010-06-14 5 views
2

저는 사용자 정의 컬러 맵과 함께 pcolor를 사용하여 값의 매트릭스를 그려 봅니다. 아래 그림과 같이 낮은 값이 흰색이고 높은 값이 빨간색이되도록 내 색상 맵을 설정합니다. 모든 행렬은 0에서 20 사이의 값을 가지며, 행렬이 전체 범위를 포함하지 않는 값을 가지더라도 20은 항상 순수한 빨강이되고 0은 항상 순수한 흰색이되도록합니다. 예를 들어, 행렬의 값이 2와 7 사이 인 경우, 2를 흰색으로, 7을 빨간색으로 표시하지 않고, 범위가 여전히 0에서 20 인 것처럼 색을 지정합니다. 어떻게 할 수 있습니까? 컬러 바의 "ticks ="옵션을 사용해 보았지만 작동하지 않았습니다. 여기python matplotlib에서 pcolor에 고정 된 색상 막대를 설정하는 방법은 무엇입니까?

내 현재 코드 (플로팅 할 값을 포함하는 "my_matrix을"가정)입니다 :

cdict = {'red': ((0.0, 1.0, 1.0), 
     (0.5, 1.0, 1.0), 
     (1.0, 1.0, 1.0)), 
    'green': ((0.0, 1.0, 1.0), 
      (0.5, 1.0, 1.0), 
      (1.0, 0.0, 0.0)), 
    'blue': ((0.0, 1.0, 1.0), 
      (0.5, 1.0, 1.0), 
      (1.0, 0.0, 0.0))} 
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap', cdict, 256) 
colored_matrix = plt.pcolor(my_matrix, cmap=my_cmap) 
plt.colorbar(colored_matrix, ticks=[0, 5, 10, 15, 20]) 

내가 올바른 결과를 얻기 위해이 문제를 해결할 수있는 방법 어떤 생각? 매우 감사합니다.

답변

2

추측 : 귀하의 컬러 맵은 아마도 괜찮을 것입니다. 플롯 할 때 vminvmax을 조정하십시오.

pylab.imshow(im, vmin=0, vmax=20) 
관련 문제