2016-11-24 2 views
-2

내 범례가 오른쪽 상단에 표시되지만 AAPL과 IBM은 하나의 문자로 표시됩니다. 위장 할 수 없습니다.도표에서 범례가 올바르게 표시되도록

import quandl 
import pandas as pd 
import matplotlib.pyplot as plt 

def get_mean_volume(symbol): 
    df = quandl.get("YAHOO/"+str(symbol))[::-1] 
    return df[['High', 'Adjusted Close']] 


stock = ['AAPL', 'IBM'] 

for s in stock: 
    plt.plot(get_mean_volume(s)) 
    plt.legend(s) 
    plt.ylabel('Price') 
    plt.xlabel('Date') 

답변

1

이것은 matplotlib.legend() 문서에 있습니다.

단순히 반복 가능 문자열의 각 항목에 대한 범례 하나가이 함수를 호출 이미 (예를 들면 줄거리 통해) 축 라인에 존재하는 범례를 확인한다. 예를 들어 :

plt.plot([1, 2, 3]) 
plt.legend(['A simple line']) 

당신은 아마 또한 plt.show()을 추가해야합니다. 당신은 내가 생각되는 레이블을 사용하지 말아 때문에

그래서 당신은 사용해야

plt.legend([s]) 

당신은 단지 하나 개의 문자가 아마 사실로 인해 발생 볼 수있는 오류를 그 입력을 통해 전설의 반복 (들 = "AAPL")이고 1 행의 레이블 텍스트에 대해 첫 번째 항목 (s [0])을 사용합니다 (s [0]은 'A'). 동일한 루프의 두 번째 반복에서 는

legend() 꽤 보인다 (... 등등 S [0] = 'I'는이 경우 때문이다. S 1 = 'B'등) 'I'에 대해 일어나는 맞춤 설정이 가능하며 matplotlib docs을 확인하세요.

그래서이 날의 결과입니다

enter image description here

:에

import matplotlib.pyplot as plt 

stock = ['AAPL'] 

for s in stock: 
    plt.plot([1,2,3]) 
    plt.legend([s]) 
    plt.ylabel('Price') 
    plt.xlabel('Date') 
    plt.show() 

결과

관련 문제