问题描述
我具有从2019年1月到2020年7月的财务数据。我想选择一个日期(假设是2020年3月16日)作为日期0,并在+ -30天窗口中计算天数并将其可视化。
x轴的天数应介于-30到+30之间。最后,画出0天的值的水平线,如附图中的那条:
解决方法
- 要从字符串创建
Timestamp
,可以使用pandas.Timestamp
- 如果要几天从
Timestamp
减去或加数,请使用pandas.DateOffset
- 如果要在Python中绘制内容,可以使用
matplotlib.pyplot
。如果您使用plot
函数。 - 要将x刻度标签从时间戳更改为-30..30,请使用
pyplot.xticks
- 要绘制垂直线-
pyplot.vlines
简单的例子:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x0 = pd.Timestamp('2020-03-16')
x = pd.date_range(x0 - pd.DateOffset(30),x0 + pd.DateOffset(30),freq='D')
y = np.linspace(1,10,len(x))
plt.plot(x,y)
plt.xticks(x[[0,15,30,45,60]],labels=[-30,-15,30])
plt.show()