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

2024-04-19 02:00:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经好几年没有使用matplotlib了,但现在对于一个项目,我想使用它。我在一个列表中列出了日期和十进制值。大约有300条记录,下面是其中的一小部分:

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

正如你所知道的,数据中存在一些缺口,有时会持续几周。我想用时间和十进制值将所有这些值绘制成一个图表。我不知道该怎么办。感谢所有的帮助。如果有帮助的话,下面是一个我希望它看起来像什么的例子(当然没有所有的样式):

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

非常感谢


Tags: 数据项目httpscom列表matplotlib记录图表
1条回答
网友
1楼 · 发布于 2024-04-19 02:00:15

使用纯matplotlib:

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()

对于numpy:

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()

和熊猫在一起

import pandas as pd
import matplotlib.pyplot as plt

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

df = pd.DataFrame(a, columns=["dates", "values"])
df["dates"] = pd.to_datetime(df["dates"])
df["values"] = pd.to_numeric(df["values"])

plt.plot("dates", "values", data=df)

plt.show()

相关问题 更多 >