📅  最后修改于: 2023-12-03 15:24:37.418000             🧑  作者: Mango
在数据分析领域中,绘制分段时间序列图是很常见的需求。本文将介绍如何用Python添加两个分段时间序列到单个图中。
假设我们有如下的数据:
Date TimeSeries1 TimeSeries2
2021-01-01 0.2 0.5
2021-01-02 0.5 0.3
2021-01-03 0.3 0.8
2021-01-04 0.4 0.2
2021-01-05 0.6 0.4
2021-01-06 0.8 0.6
2021-01-07 0.7 0.9
2021-01-08 0.9 0.7
2021-01-09 0.6 0.3
其中,Date是日期,TimeSeries1和TimeSeries2是两个不同的时间序列。
首先,我们需要导入必要的Python库,包括pandas、matplotlib和datetime。
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
然后,读取数据并将Date列转换为datetime类型。
data = pd.read_csv("data.csv")
data["Date"] = pd.to_datetime(data["Date"])
接着,将时间序列按Date列排序。
data = data.sort_values("Date")
为了绘制分段时间序列图,我们需要将数据集分成两段:第一段是从2021-01-01到2021-01-05,第二段是从2021-01-06到2021-01-09。我们可以使用如下的代码来实现。其中,start_date和end_date是分段的起始日期和终止日期。
start_date1 = datetime(2021, 1, 1)
end_date1 = datetime(2021, 1, 5)
start_date2 = datetime(2021, 1, 6)
end_date2 = datetime(2021, 1, 9)
data1 = data[(data["Date"] >= start_date1) & (data["Date"] <= end_date1)]
data2 = data[(data["Date"] >= start_date2) & (data["Date"] <= end_date2)]
现在,我们可以使用如下的代码绘制分段时间序列图。其中,dashed_line是分段的垂直虚线。我们先绘制第一段时间序列(TimeSeries1),再绘制第二段时间序列(TimeSeries2)。
fig, ax = plt.subplots(figsize=(10, 5))
dashed_line = ax.axvline(x=start_date2, color='gray', linestyle='--')
ax.plot(data1["Date"], data1["TimeSeries1"], label="TimeSeries1")
ax.plot(data2["Date"], data2["TimeSeries2"], label="TimeSeries2")
plt.legend()
plt.show()
如此,就能够得到如下的分段时间序列图。
以上,便是如何用Python添加两个分段时间序列到单个图中的介绍。