2013-02-26 5 views
6

matplolib에서 타임 라인 다이어그램은 왼쪽에 다른 값을 y 축으로 설정하고 다른 축척으로 다른 y 축을 오른쪽으로 만들 수 있습니까?2 y 축이있는 matplotlib 다이어그램

I이 사용하고 있습니다 :

import matplotlib.pyplot as plt 

plt.axis('normal') 
plt.axvspan(76, 76, facecolor='g', alpha=1) 
plt.plot(ts, 'b',linewidth=1.5) 
plt.ylabel("name",fontsize=14,color='blue') 
plt.ylim(ymax=100) 
plt.xlim(xmax=100) 
plt.grid(True) 
plt.title("name", fontsize=20,color='black') 
plt.xlabel('xlabel', fontsize=14, color='b') 
plt.show() 

나는이 음모에 2 y 축을 줄 수 있습니까? 범위 선택에서

: 내가 어떻게 할 수

내가 예를 들어,이 범위를 특성화하기 위해 텍스트를 잘 할
plt.axvspan(76, 76, facecolor='g', alpha=1) 

'이 범위의 선택은?'

+0

[matplotlib : overlay plot 다른 비늘로?] (http://stackoverflow.com/questions/7733693/matplotlib-overlay-plots-with-different-scales) – tacaswell

+0

아니 같은 플롯 에서이 아니에요 나는 왼쪽에 2 y 축과 플롯에서 오른쪽으로 –

+0

그래서 4 (?!)와 Y 축을 구분하는 그래프를 원하십니까? 수락 된 답변의 두 번째 절반으로 스크롤하십시오. – tacaswell

답변

15

원함 twinxexample. 요점은 인 경우 :

ax = plt.gca() 
ax2 = ax.twinx() 
그런 다음

ax.plot(...) 

및 귀하의 경우 (내가 생각하는) 당신이 원하는에

ax2.plot(...) 

와 두 번째로 첫 번째 축에 플롯 할 수 있습니다

:

import matplotlib.pyplot as plt 

ax = plt.gca() 
ax2 = ax.twinx() 
plt.axis('normal') 
ax2.axvspan(74, 76, facecolor='g', alpha=1) 
ax.plot(range(50), 'b',linewidth=1.5) 
ax.set_ylabel("name",fontsize=14,color='blue') 
ax2.set_ylabel("name2",fontsize=14,color='blue') 
ax.set_ylim(ymax=100) 
ax.set_xlim(xmax=100) 
ax.grid(True) 
plt.title("name", fontsize=20,color='black') 
ax.set_xlabel('xlabel', fontsize=14, color='b') 
plt.show() 
+1

당신은 전설에 대해 무엇을합니까? 나는 서로를 쌓아 올렸습니다. – raphael

+1

@raphael 전설에 위치를 명시 적으로 전달하여 충돌을 제거합니다. 나는 '최고의'배치 알고리즘이 다른 축의 아티스트를 고려하지 않는다고 생각합니다. – tacaswell

관련 문제