如何在 Python Matplotlib 的同一个图中绘制两个不同的间隔时间序列?

要使用 Matplotlib 在同一个图上绘制两个不同的间隔时间序列,我们可以采取以下步骤

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 创建x1、y1x2y2数据点。

  • 创建一个图形和一组子图。

  • (x1, y1)(x2, y2)数据点绘制包含日期的数据。

  • 设置 X 轴刻度标签的主要格式化程序。

  • 使用方法将xtick标签旋转45 度tick_params()

  • 要显示图形,请使用Show()方法。

示例

importmatplotlib.pyplotas plt
frommatplotlib.datesimport 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()
输出结果

它将产生以下输出 -