2013-05-29 1 views
0

, 할 수있는 편리한 방법이 다음컬러 막대 및 pcolosmesh 플롯에서 컬러 맵의 사용자 지정 하위 집합을 사용하는 방법은 무엇입니까? 파이썬과하기 matplotlib 사용

  1. 색상과 값 사이의 매핑을 수립, 말 -5 = 블랙, -2 = 빨강, 0 = 흰색, +2 = 검은 푸른, +5 =

  2. 를 사용

  3. 은 사색 플롯 pcolormesh(X,Y,Z) 확인 matplotlib.colors.LinearSegmentedColormap.from_list()와 동일한 것을들 사이에 보간 값을 컬러 맵, 0 < Z < 생성 3 색상 코딩 est 위에 ablished. 즉, 색상 표의 하위 집합 만 사용됩니다. (붉은 색은 부정적인 값이 없기 때문에 사용되지 않습니다.)

  4. 값과 일관된 색상을 매핑을 유지 할 수 있도록 0 ~ 3

이에 이르기까지 년 Colorbar 추가 다중 플롯.

+0

에 표시하도록 년 Colorbar을 설정합니다 'LinearSegmentedColormap'과 정규화 기능에 대한 적절한 한계. 칼라 맵은'[0, 1]'에서 인수를 취합니다, 그래서 당신은 당신이 원하는대로 그 범위에 값을 맵핑 할 필요가 있습니다. – tacaswell

+0

http://stackoverflow.com/questions/16834861/create-own-colormap-using-matplotlib-and-plot-color-scale – tacaswell

+0

이것은 http://stackoverflow.com/questions/18926031/how- colormap-as-a-new-colormap-in-matplotlib에서 추출 및 추출이 가능합니다. 그 대답은 아주 좋습니다. – MattZ

답변

0

LinearSegmentedColormap에 대한 사용자 정의 색상 맵을 만들어야합니다. 아래에서 알 수있는 컬러 맵 사전이 LinearSegmentedColormap docs에 제시되는 방법에 대한 설명 : 색 변화 -5 일어날 이처럼 기본적

# Create the desired color dictionary 
cdict = { 'red' : ((0.0, 0.0, 0.0), 
        (0.3, 1.0, 1.0), 
        (0.5, 1.0, 1.0), 
        (0.7, 0.0, 0.0), 
        (1.0, 0.0, 0.0)), 
      'green' : ((0.0, 0.0, 0.0), 
        (0.3, 0.0, 0.0), 
        (0.5, 1.0, 1.0), 
        (0.7, 0.0, 0.0), 
        (1.0, 0.0, 0.0)), 
      'blue' : ((0.0, 0.0, 0.0), 
        (0.3, 0.0, 0.0), 
        (0.5, 1.0, 1.0), 
        (0.7, 1.0, 1.0), 
        (1.0, 0.0, 0.0)), 
     } 

# Create a colormap from the above dictionary 
cmap = LinearSegmentedColormap('CustomColormap', cdict, 1024) 
# Use the colormap in your plot 
contour = pcolormesh(X,Y,Z,cmap=cmap) 
# Supply the contour to the colorbar 
colorbar(contour) 

에서, colormapping 만, 0-1에서 존재할 수있는, -2, 0 , 2, 5 점이 0 (-5), 0.3 (-2), 0.5 (0), 0.7 (2) 및 1 (5)가되어야합니다.

원하는 효과를 얻으려면, 당신은 당신이 범위 -5 ~ 5를 통해 플롯 있는지 확인해야합니다,하지만 난 당신이 할 수 있다고 생각 만 0 ~ 3

+0

'당신이 원하는 효과를 얻으려면 무엇을 의미합니까? -5에서 5까지의 범위에서 플롯해야하지만, 0에서 3까지만 표시되도록 컬러 바를 설정해야합니다.' – tacaswell

+0

이 색 구성표의 범위를 -5에서 +5까지 변경하려면 해당 범위에 대해 색을 지정해야합니다. 그러나 컬러 바가 0에서 3으로 만 이동하도록하려는 경우 데이터가 그려지는 배율과 별도로 컬러 바 배율을 설정해야합니다. 내가 분명하지 않으면 미안해. 몇 가지 코드를 보여줄 수는 있지만 원하는 부분을 어떻게 수행할지 모르겠습니다. – SethMMorton

+0

http://setackoverflow.com/questions/16695275/set-limits-on-a-matplotlib-colorbar-without-changing-the-actual-plot/16697193#16697193 내가 깨끗하게 생각할 수 없어서 물어 본다. 그걸하는 방법. – tacaswell

관련 문제