You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个不同起始点的时间序列对齐起点后合并绘图

不同起始时间时间序列对齐起点同坐标系绘制实现

现有方案问题说明

方案1:双子图分开绘制

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

fig = plt.figure()

ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)

#data1
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00', periods=150, freq='d')

#data2
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2019-05-01 12:00:00', periods=150, freq='H')

#plot
ax1.plot(x1, y1)
ax2.plot(x2, y2)

plt.show()

该方案问题:两个时间序列x轴虽然各自从起点开始、视觉上对齐,但分别绘制在两个子图中,没有合并在同一坐标系。

方案2:同坐标系直接绘制

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)

#data1
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00',periods=150,freq='d')

#data2
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2019-05-01 12:00:00',periods=150,freq='H')

#plot
ax1.plot(x1, y1)
ax1.plot(x2, y2)

plt.show()

该方案问题:两个序列合并绘制在同一坐标系,但x轴按实际绝对时间展示,两个序列起点没有对齐。

最终实现方案

核心逻辑是将两个时间序列的x轴转换为相对起始点的时间偏移量,再绘制到同一坐标系中。如果需要按采样序号对齐(即第1个采样点、第2个采样点...一一对应),也可以直接用采样索引作为x轴。
下面是按实际时间跨度对齐的完整实现代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

# 生成测试数据
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00', periods=150, freq='d')
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2019-05-01 12:00:00', periods=150, freq='H')

# 计算相对起始点的天数作为统一x轴
x1_rel = (x1 - x1[0]).days
x2_rel = (x2 - x2[0]).total_seconds() / (3600 * 24) # 转换为天单位

# 同坐标系绘制
ax.plot(x1_rel, y1, label='日频序列')
ax.plot(x2_rel, y2, label='小时频序列')

# 自定义x轴标签说明
ax.set_xlabel('距离序列起始点的天数')
ax.set_ylabel('数值')
ax.legend()

plt.show()

如果需要按采样序号对齐,只需要把x轴替换为索引即可:

# 按采样序号对齐的x轴
x_rel = np.arange(len(y1))
ax.plot(x_rel, y1, label='日频序列')
ax.plot(x_rel, y2, label='小时频序列')
ax.set_xlabel('采样序号')

内容的提问来源于stack exchange,提问作者drango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:36:03