我有一个名为total_shortfall_per_replicate
的5元素字典。每个元素都是长度为22的列表。
我想循环遍历字典中的每个键/值对并制作一个数字。我尝试了以下代码,但所有对都在同一个数字而不是单独的数字。
我也试过在循环之外初始化range(len(total_shortfall_per_replicate)
个数字,但不过我只得到最后一个元素的五个数字。
我做错了什么?
import matplotlib.pyplot as plt
def shortfall_bar(k, v, time):
fig = plt.bar(time, v, label=k)
tl = 'Number of wells reporting a demand shortfall %s' %(k)
plt.title(tl)
plt.xlabel('Time (days)')
plt.ylabel('Number of failed wells')
plt.plot([0., len(time)], [22, 22], "k--")
plt.ylim(0,25)
plt.xlim(0,len(time))
ax = plt.subplot(111)
box = ax.get_position()
ax.set_position([box.x0, box.y0 + box.height * 0.1, box.width,
box.height * 0.9])
ax.legend(loc='upper center', bbox_to_anchor=(0., -0.05, 1., 0.),
borderaxespad=0, ncol= 5, numpoints=1, mode='expand')
plt.show()
return fig
keys = total_shortfall_per_replicate.keys()
print keys
fig = plt.figure()
for k in keys:
shortfall_list = total_shortfall_per_replicate[k]
print shortfall_list
my_fig = shortfall_bar(k, v=shortfall_list, time= s_d_time_list)