如何从列表内的列表中绘制日期和小数?

时间:2019-07-24 23:49:50

标签: python python-3.x matplotlib

多年以来我都没有使用过matplotlib,但是现在对于一个项目,我想使用它。我在列表中有日期列表和十进制值。大约有300条记录,因此下面是其中的一小段内容:

[['2015-01-08', '174.0'], ['2015-01-09', '172.0'], ['2015-01-11', '170.5']]

如您所知,数据中有一些空白,有时持续几周。我想将所有这些值与时间和十进制值一起绘制在图形中。我不知道该怎么办。感谢所有帮助。如果有帮助,下面是我希望它看起来像的示例(当然没有所有样式):

此外,如果需要的话,以下是所有数据:https://pastebin.com/esEPp78j

非常感谢!

1 个答案:

答案 0 :(得分:3)

使用纯matplotlib:

double now_ms() {
    return 1000.0 * [[NSDate date] timeIntervalSince1970];
}

使用numpy:

from datetime import datetime
import matplotlib.pyplot as plt

a = [['2015-01-08', '174.0'], ['2015-01-09', '172.0'], ['2015-01-11', '170.5']]

dates = [datetime.strptime(d[0], "%Y-%m-%d") for d in a]
values = [float(d[1]) for d in a]

plt.plot(dates, values)

plt.show()

和熊猫一起

import numpy as np
import matplotlib.pyplot as plt

a = [['2015-01-08', '174.0'], ['2015-01-09', '172.0'], ['2015-01-11', '170.5']]

dates, values = np.array(a).T
dates = dates.astype(np.datetime64)
values = values.astype(float)

plt.plot(dates, values)

plt.show()