python - pyplot 图例不匹配行

标签 python matplotlib

我的图例与线条颜色不匹配。知道我如何解决这个问题以及我做错了什么吗?该代码从 yahoo finance 下载数据,因此您应该能够按原样在您的计算机上运行它并自己查看数据。感谢您的帮助!

import pandas.io.data as web
import datetime
import pandas as pd
import matplotlib.pyplot as plt

start = '5/1/2007'
end = '10/1/2007'
event = datetime.date(2007,6,27)
companies = ['AAPL','MSFT','BBRY','IBM']

all_data = {}
for ticker in companies:
        all_data[ticker] = web.get_data_yahoo(ticker, start,end)

price = pd.DataFrame({tic:data['Adj Close']
                    for tic, data in all_data.iteritems()})

volume = pd.DataFrame({tic:data['Volume']
                    for tic, data in all_data.iteritems()})

rels = price/price.ix[event]
plt.figure(figsize=(15,5))
for i in companies:
   plt.plot(rels.index,rels[i],label=i,lw=4.0)  
plt.legend(companies,loc='upper left')
plt.axvline(x=event)
plt.grid(True)
plt.show()

编辑:我注意到图例正在拾取 axvline,所以我将其移到图例之后,并按照评论中的建议通过循环生成单独的绘图语句,但看起来这些线仍然与中的正确名称不匹配传说。

最佳答案

您已通过调用 plt.plot 标记了您的线条,因此您无需在调用 plt.legend 时传递另一组标签。换句话说替换

plt.legend(companies,loc='upper left')

plt.legend(loc='upper left')

一切都应该正常进行。

关于python - pyplot 图例不匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25614506/

相关文章:

python - 将值分配给不同行中的相同名称

python - 在python中检测文本中的缩写

python - 如何偏移 x 轴刻度以使其他刻度稍低/略高?

python - 绘制离散变量随时间变化的图(围巾图)

python - 如何在 python 中绘制数组?

matplotlib - 如何增加gnuplot中的颜色数量?

python - 使用 tensorflow 对输出函数进行参数化模型

python - 无法将函数转换为张量或运算

Python TKinter 获取文本小部件中的点击标签

python - 如何在循环中使用使用 pyplot.Spectral 创建的调色板来绘制散点图?