2012-06-06 4 views
2

두 개의 다른 y 축과 colorbar가있는 산점도를 생성하려고합니다. 여기 matplotlib에서 y 축과 colorbar를 여러 개 플롯

사용되는 의사 코드입니다 :

#!/usr/bin/python 

import matplotlib.pyplot as plt 
from matplotlib import cm 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
plt.scatter(xgrid, 
     ygrid, 
     c=be,     # set colorbar to blaze efficiency 
     cmap=cm.hot, 
     vmin=0.0, 
     vmax=1.0) 

cbar = plt.colorbar() 
cbar.set_label('Blaze Efficiency') 

ax2 = ax1.twinx() 
ax2.set_ylabel('Wavelength') 

plt.show() 

그리고이 음모 생산 : plot http://i48.tinypic.com/2zix7x1.png

내 질문은, 당신은 "파장"축에 대해 다른 척도를 사용합니까 어떻게하고, 또한 컬러 바를 오른쪽에서 오른쪽으로 움직이면 파장의 방식이 아닌 것입니다.

답변

5

@ OZ123 매우 오랫동안 답변을 드려 죄송합니다. Matplotlib은 확장 가능한 사용자 정의 기능을 제공합니다. 때로는 실제로 수행중인 작업에 혼란 스러울 수 있습니다. 별도의 축 생성에 도움을 주셔서 감사합니다.

그러나, 나는 그 정도 제어를 필요로 생각하지 않았고, 난 그냥

fig.colorbar() 

에 패드 키워드 인수를 사용하여 결국 이것이 내가 필요한 것을 제공했다.

의사 코드는 다음이된다 : enter image description here : 여기

#!/usr/bin/python 

import matplotlib.pyplot as plt 
from matplotlib import cm 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
mappable = ax1.scatter(xgrid, 
         ygrid, 
         c=be,     # set colorbar to blaze efficiency 
         cmap=cm.hot, 
         vmin=0.0, 
         vmax=1.0) 

cbar = fig.colorbar(mappable, pad=0.15) 
cbar.set_label('Blaze Efficiency') 

ax2 = ax1.twinx() 
ax2.set_ylabel('Wavelength') 

plt.show() 

가 지금 어떻게 생겼는지 보여주는 것입니다

2

plt.colorbar()은 매우 간단한 경우를 위해 만들어졌습니다. 2 y 축이있는 음모에 대해서는별로 생각하지 않았습니다. 컬러 바 위치와 속성을 세밀하게 제어하려면 거의 항상 컬러 바를 사용하여 작업해야합니다. 즉, 컬러 바를 표시 할 축을 지정해야합니다.

키워드 인수 : |

CAX 없음 년 Colorbar 아래 키워드를 소요

# on the figure total in precent l b  w , height 
cbaxes = fig.add_axes([0.1, 0.1, 0.8, 0.05]) # setup colorbar axes. 
# put the colorbar on new axes 
cbar = fig.colorbar(mapable,cax=cbaxes,orientation='horizontal') 

주 색상 막대가 그릴 축 객체 도끼 없음 | 부모 축이 새로운 년 Colorbar 축에에서있는 공간이

당신이 여기 figure colorbar on separate axes에 대한 내 더욱 확장 된 답을 볼 수 있었다 도난됩니다 객체.

관련 문제