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

时间:2016-03-30 15:36:47

标签: python list dictionary plot

在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线将绘制第二个colomn(整数)与第一个colomn(日期)

['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库。

1 个答案:

答案 0 :(得分:0)

我们可以简单地迭代字典项,然后使用zip()来解压缩值。 label=的{​​{1}}关键字参数会使plot()调用自动创建图例。

legend()

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

编辑:使用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() 打开列表清单的伎俩就是其中一个“啊哈!” - 对我而言的时刻:)