2014-04-15 11 views
1

현재 나는 각각의 서브 플롯에 몇 개의 산점도를 가지고 있습니다. 데이터를 포맷하는 방법은 다음과 같습니다 나는 산점도를 그릴 때커스텀 Matplotlib ColorBar for Scatterplot

ID, X, Y, Colors, Area 
0, x1, y1, r, 1 
1, x2, y2, g, 1 
2, x3, y3, r, 3 
3, x4, y4, b, 4 
.... 
n, xn, yn, g, 3 

는 그래서 ax.scatter(X, Y, color=Colors) 같은 따라서 각 지점이 빨간색으로되어 하나, 녹색, 청색, 그에 따라 보인다. 그리고 각 Area에 대해 다른 산점도가 있습니다.

측면에 맞춤 색상 막대를 만들어 세 가지 색상 (빨강, 녹색 및 파랑) 및 각 색상과 연결된 라벨을 표시하려고합니다. 이 경우 소득 계층입니다.

지금까지 인터넷 검색에서는 사용자 정의 색상 맵을 작성한 다음 해당 색상 맵을 사용하여 자체 서브 플롯에 색상 막대를 그려 보았습니다. 그러나 matplotlib 예제를 살펴볼 때 약간의 손실이 발생하기 전에 사용자 지정 색상 표를 사용한 적이 없습니다.

cdict1 = {'red': ((0,0,0),(1,1,1)), 
     'green': ((0,0,0),(1,1,1)), 
     'blue': ((0,0,0),(1,1,1))} 
rgbtest = LinearSegmentedColormap('test', cdict1) 
plt.register_cmap(name='test', data=cdict1) 
cmap = plt.get_cmap('test') 
matplotlib.colorbar.ColorbarBase(ax3, cmap=rgbtest) 

어떤 제안 :

지금까지 내가 이것을 가지고,하지만 난 그냥 무작위 whatnots입니다 확신 해요 (모든 그것은 나를 AX3의 부가 적 줄거리에 그레이 스케일 칼라 맵입니다 제공)? 나는 이것이 의미가 있기를 바랍니다. 고맙습니다. 건배

답변

0

나는 이것으로 끝났다. 나는 그것이 최선의 방법인지 아닌지 잘 모르겠다 - 만일 당신이 다른 제안을 가지고 있다면 아마도 나는 미래의 사용을 위해 그들로부터 배울 수있을 것이다!

cmap = matplotlib.colors.ListedColormap(['green', 'blue', 'red']) 
bounds=[0,125,200,400] 
cax = inset_axes(ax3, width="8%", height='70%', loc=4) 
cbar = matplotlib.colorbar.ColorbarBase(cax, cmap=cmap, boundaries=bounds) 
cax.yaxis.set_ticks_position('left') 
cbar.ax.set_yticklabels(['0', '125', '200', '200+']) 
cax.yaxis.set_label_position('left') 
cbar.set_label('Income (,000s)')