我有一个绘图功能:
def graph(title, loop, *plotdata):
fig = plt.figure(figsize=(16,16))
n = 0
for i in loop:
n += 1
fig.add_subplot(plt.subplot(4,3,n))
fig.suptitle('%s' % (title))
for data in plotdata:
(data).plot(linewidth=3,label=i)
我称之为:
graph('Sector Graph', sectors, sector_return[i])
# sectors is a list of all S&P sectors
# sector_return is a dict, with S&P sectors as keys and returns each sector as values
sector_return
看起来像这样:
{'XLB': Date
2015-01-05 .012
2015-01-06 .3
2015-01-07 -.5
...
'XLE': Date
2015-01-05 -.7
2015-01-06 -.4
2015-01-07 -1.6
...
目前正在发生的是,这为所有图表(sector_return
中的最后一个扇区)绘制了相同的sectors
。我认为我的问题是嵌套for循环 - 但如果我把它拿出来并且只使用plotdata我得到:
def graph(title, loop, *plotdata):
fig = plt.figure(figsize=(16,16))
n = 0
for i in loop:
n+=1
fig.add_subplot(plt.subplot(4,3,n))
fig.suptitle('%s' % (title))
plotdata.plot(linewidth=3, label=i)
In: graph('Sector Graph', sectors,sector_return[i])
Out: AttributeError: 'tuple' object has no attribute 'plot'
我的预期输出是在子图上绘制每个扇区的回报,并且能够添加无限制的args(例如我的下一个函数orbital_returns
,并为每个扇区绘制这些函数。)