如何在 Python Matplotlib 中绘制两个不同间隔的时间序列在同一张图中?
使用 Matplotlib 在同一张图中绘制两个不同间隔的时间序列,我们可以执行以下步骤。
步骤
- 设置图像大小并调整子图之间和周围的填充。
-
创建 x1、y1 和 x2、y2 数据点。
-
创建一个图像和一组子图。
-
绘制包含 日期 的数据,使用 (x1, y1) 和 (x2, y2) 数据点。
-
设置 ticklabels 的X轴主格式化程序。
-
使用 tick_params() 方法将 xtick 标签旋转45度。
-
使用 Show() 方法显示图像。
示例
import matplotlib.pyplot as plt
from matplotlib.dates import date2num, DateFormatter
import datetime as dt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x1 = [date2num(dt.datetime(2021, 1, 15, 1, 1, 1)), date2num(dt.datetime(2021, 1, 15, 9, 1, 1))]
y1 = [6, 2]
x2 = [ date2num(dt.datetime(2021, 1, 15, 2, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 4, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 6, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 8, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 10, 1, 1))
]
y2 = [3, 6, 5, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x1, y1, 'o--')
ax.plot_date(x2, y2, 'o:')
ax.xaxis.set_major_formatter(DateFormatter('%H:%M:%S'))
ax.tick_params(rotation=45)
plt.show()
输出
它将产生以下输出 −