我已经很多年没用过 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/