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

标签 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

非常感谢!

最佳答案

使用纯 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()

与 Pandas

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

关于python - 如何从列表中的列表中绘制日期和小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192588/

相关文章:

python - 如何将带有字数统计的列表转换为字典

python - 如何打印类属性/元素的文档字符串?

python - tripcolor 使用每个顶点的 RGB 值

python - 根据条件更改 matplotlib 的刻度标签的颜色

python - 这是在 python 中打开 'complicated' txt 文件的好方法

python - Pipenv锁: how to cache downloads for transfer to an offline machine

python-3.x - 如何在不下载的情况下在 AWS S3 中列出 tar 中的文件?

python - 如何将图像添加到轴中的条形(matplotlib)

python - 抽认卡抛硬币词典

javascript - 填充数据列表中选项的更好方法