2013-12-20 2 views
2

이것은 '데이터 플로트 데이터 레이블'질문에 대한 변형입니다. 그래서 몇 군데에서 보았습니다. 그러나, 나는 그것이 기생충 축에서 한 번도 본 적이 없다.Matplotlib : 기생충 축에 연결된 데이터에 데이터 레이블 플로팅

기본적으로 기생충 (오른쪽) 세로 축에 연결된 시계열 (녹색)의 각 점 위에 데이터 레이블을 표시하고 싶습니다. 나는 모두 par.plot_text(times[1], difference[1], difference[1])par.annotate()를 사용하여 시도했지만, 모두라는 에러를 던졌다

from mpl_toolkits.axes_grid1 import host_subplot 
import matplotlib.pyplot as plt 

times=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] 
plotorder=[239, 133, 94, 42, 31, 27, 49, 99, 172, 292, 397, 439, 450, 391, 429, 374, 382, None, None, None, None, None, None, None] 
lastyearorders=[119, 78, 49, 29, 14, 12, 30, 46, 108, 154, 194, 224, 181, 199, 213, 186, 167, 152, 135, 115, 99, 106, 97, 90] 
difference=[100.8, 70.5, 91.8, 44.8, 121.4, 125.0, 63.3, 115.2, 59.3, 89.6, 104.6, 96.0, 148.6, 96.5, 101.4, 101.1, 128.7, None, None, None, None, None, None, None] 
ordersMax=max(plotorder+lastyearorders) 
growthMax=max(difference) 

host = host_subplot(111) 

par = host.twinx() 
host.set_xlabel("Hour") 
host.set_ylabel("Orders") 
par.set_ylabel("% Growth") 
host.set_xlim(0,24) 
host.set_ylim(0,ordersMax*1.1) 
par.set_ylim(0,growthMax*2) 
p1, = host.plot(times, plotorder, linewidth=2, marker='o', color='r', label="Today's Orders") 
p1, = host.plot(times, lastyearorders, linewidth=2, color='b', label="LY Orders") 
p2, = par.plot(times, difference, marker='s', color='green', label="% Growth") 
leg = plt.legend() 
plt.show() 

AttributeError: 'AxesParasite' object has no attribute 'plot_text'

이 내가 현재 가지고있는 것입니다 :

내가 현재 가지고있는 것입니다

chart1

다음과 같이 Excel에서 입력하십시오 :

이 나를 위해 작동하는 것 같다

CHART 2

+0

'par.annotate'는 어떤 오류를 발생 시켰습니까? par.annotate ('{}'. 형식 (d), xy = (t, d), ...)'와 같은 것을 통해 반복 할 수 있어야합니다. – wflynny

답변

1
for (x,y) in zip(times, difference): 
    if y: 
     par.annotate("{0}%".format(y), xy=(x, y+10)) 

, 당신은 주석을 위해 무엇을하려고 했습니까?

+0

내 컴퓨터에서도 나와 잘 작동합니다. 다음주에 업무용 컴퓨터로 다시 확인해 보도록하겠습니다. 그러나 그 동안 귀하의 답변을 수락하겠습니다. – Bryan

+0

예, 이제 작동합니다. 필자의 질문을 parannotate 오류로 업데이트하겠다. 이것은 기능에 대한 나의 이해와 관련된 문제 일 뿐이다. – Bryan