![](/img/trans.png)
[英]How to find all keys within a dictionary which contains only ALL values from a list
[英]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.