我的传奇显示在右上角,而不是说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')
答案 0 :(得分:1)
这是来自matplotlib.legend()文档。
为轴上已存在的线创建图例(通过图表 例如),只需使用可迭代的字符串调用此函数, 每个图例项目一个。例如:
plt.plot([1, 2, 3])
plt.legend(['A simple line'])
您可能还应添加plt.show()
。
因为你不使用任何标签,我认为你应该使用:
plt.legend([s])
您只看到一个字母的错误可能是由于图例迭代输入(s =" AAPL")并获取标签文本的第一个项目(s [0])对于第1行(s [0]是' A')。 对于循环的第二次迭代,对于' 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()
结果: