在多个时间序列的每个时间序列子图中添加垂直线

时间:2020-06-01 02:19:49

标签: python timeserieschart

我有多个时间序列。每个都有共同的时间戳。我为每个时间序列绘制了子图。现在,我想在每个子图中添加垂直线。我已经尝试过循环。但这是行不通的。

url_jobs="https://assets.datacamp.com/production/repositories/1259/datasets/1c6b4a977a3c14f2a00c2d74694b208d9ac86443/ch5_employment.csv"
jobs=pd.read_csv(url_jobs)
jobs['datestamp']=pd.to_datetime(jobs['datestamp'])
jobs=jobs.set_index('datestamp')
plot2=jobs.plot(subplots=True,layout=(4,4),figsize=(20,16),sharex=True,sharey=False)
for each in plot2:
    each.axvline('2008-09-01',color='red',linestyle='--')
plt.show()

1 个答案:

答案 0 :(得分:1)

由于您的布局为4 x 4,因此DataFrame.plot将返回4 x 4的numpy数组。您可以对其调用flatten以便将其变成一维数组:

url_jobs="https://assets.datacamp.com/production/repositories/1259/datasets/1c6b4a977a3c14f2a00c2d74694b208d9ac86443/ch5_employment.csv"
jobs=pd.read_csv(url_jobs)
jobs['datestamp']=pd.to_datetime(jobs['datestamp'])
jobs=jobs.set_index('datestamp')
plot2=jobs.plot(subplots=True,layout=(4,4),figsize=(20,16),sharex=True,sharey=False)
for each in plot2.flatten():
    each.axvline('2008-09-01',color='red',linestyle='--')
plt.show()

enter image description here