如何在同一个情节中用不同的键绘制字典?

时间:2018-06-12 14:34:48

标签: python dictionary matplotlib plot

假设我在Python中有两个字典,这些字典可能有不同的长度,并且其中一个字的键不在另一个字段中。

例如,假设第一个字典包含键k1和度量m1以及第二个k2m2。例如:

#1st dictionary
k = ['2015_05_06', '2015_05_26', '2016_03_03']
m1 = [10, 8.5, 19]
#second dictionary
k2 = ['2014_05_06', '2015_05_06', '2016_03_03']
m2 = [10, 13, 9]

如果我这样做:

import matplotlib.pyplot as plt
plt.plot(k1, m1)
plt.plot(k2,m2)
plt.show()

结果是以下enter image description here

基本上,表示日期的x轴没有排序,因此第二个图是在错误的x轴位置绘图。

为了解决这种情况,我想创建一组独特的值,例如:

 k = list(set(k1+k2))

但是km1以及m2的长度不一样。

是否有一种智能方法可以在同一个绘图中使用不同的键绘制字典,以便x轴上的键正确排序 ?

1 个答案:

答案 0 :(得分:1)

一种选择是将日期转换为日期时间对象。

from datetime import datetime

d1 = [datetime.strptime(x, '%Y_%m_%d') for x in k]
d2 = [datetime.strptime(x, '%Y_%m_%d') for x in k2]

plt.plot(d1, m1, d2, m2)

由于日期时间对象保持完整的顺序,您的绘图也会被订购,但它也会反映每个时间步之间的不同持续时间。 enter image description here