2016-11-24 40 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]) 

,你只能看到一個字母可能是由以下事實導致的錯誤在輸入傳奇迭代(S =「AAPL」 )併爲第1行(s [0]爲'A')的標籤文本取第一項(s [0])。 對於循環相同的第二次迭代發生的「I」(因爲S [0] =「I」在此如果s 1 =「B」。等...)

legend()似乎相當可定製只需檢查matplotlib docs

所以這是我的結果:

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() 

結果:

enter image description here