从字典中制作几个数字而不覆盖上一个数字

时间:2017-10-29 22:50:53

标签: python loops dictionary matplotlib

我有一个名为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)

0 个答案:

没有答案