多年以来我都没有使用过matplotlib,但是现在对于一个项目,我想使用它。我在列表中有日期列表和十进制值。大约有300条记录,因此下面是其中的一小段内容:
[['2015-01-08', '174.0'], ['2015-01-09', '172.0'], ['2015-01-11', '170.5']]
如您所知,数据中有一些空白,有时持续几周。我想将所有这些值与时间和十进制值一起绘制在图形中。我不知道该怎么办。感谢所有帮助。如果有帮助,下面是我希望它看起来像的示例(当然没有所有样式):
此外,如果需要的话,以下是所有数据:https://pastebin.com/esEPp78j
非常感谢!
答案 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()