繁体   English   中英

绘制包含列表作为值的字典的所有键(python)

[英]plotting all keys of a dictionary which contains list as values (python)

在python 2.7中,我有一个字典,字典的大小可以变化。 对于每个键,Q1,Q2,Q3 ......我需要绘制字典值,这些值是包含日期和整数的列表。

{'Q1': [['20.03.2016', 25], ['21.03.2016', 35], ['22.03.2016', 22], ['23.03.2016
', 50], ['24.03.2016', 50], ['30.03.2016', 50], ['30.03.2016', 50]], 'Q3': [['20
.03.2016', 23], ['21.03.2016', 21], ['22.03.2016', 27], ['23.03.2016', 20], ['24
.03.2016', 20], ['30.03.2016', 20], ['30.03.2016', 20]], 'Q2': [['20.03.2016', 1
5], ['21.03.2016', 12], ['22.03.2016', 15], ['23.03.2016', 15], ['24.03.2016', 1
5], ['30.03.2016', 15], ['30.03.2016', 15]], 'Q5': [['20.03.2016', 320], ['21.03
.2016', 30], ['22.03.2016', 30], ['23.03.2016', 30], ['24.03.2016', 30], ['30.03
.2016', 30], ['30.03.2016', 30]], 'Q4': [['20.03.2016', 130], ['21.03.2016', 10]
, ['22.03.2016', 10], ['23.03.2016', 10], ['24.03.2016', 10], ['30.03.2016', 10]
, ['30.03.2016', 10]], 'Q7': [['23.03.2016', 5], ['24.03.2016', 5], ['30.03.2016
', 5], ['30.03.2016', 5]], 'Q9': [['30.03.2016', 17]], 'Q8': [['24.03.2016', 15]
, ['30.03.2016', 15], ['30.03.2016', 15]]}

如何在一个包含每个键的行的绘图窗口中绘制所有键,并按键名称标记? 每行应使用颜色编码,并显示每个键的所有整数与日期数据点。 因此Q1线将绘制第二列(整数)与第一列(日期)的关系图

['20.03.2016', 25], 
['21.03.2016', 35],
['22.03.2016', 22],
['23.03.2016', 50],
['24.03.2016', 50], 
['30.03.2016', 50],
['30.03.2016', 50]

每行都可以进行颜色编码,并且应该在图例中包含键的标签。 我在python中使用numpy和matplotlib库。

我们可以简单地遍历字典项,然后使用zip()解压缩值。 plot()label=关键字参数将使legend()调用自动创建图例。

for key, data_list in data_dict.items():
    dates_str, values = zip(*data_list)  # Unpack
    dates = convert_str_to_dates(dates_str)  # Not handled in example
    plt.plot(dates, values, label=key)
plt.legend()

要解决的是如何从字符串列表转到matplotlib可以理解的某种日期对象。 不过,在文档中应该很容易找到它。

编辑:使用zip()解压缩列表列表的技巧对我来说就是那些“啊哈!”时刻之一:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM