如何在同一个 Python Matplotlib 绘图中绘制两个不同间隔的时间序列?
如果要使用 Matplotlib 在同个绘图中绘制两个不同间隔的时间序列,我们可按照以下步骤进行
步骤
设置图形大小并调整子图之间及周围的间距。
创建 x1, y1 和 x2 及 y2 数据点。
创建一个图形和一组子图。
绘制包含 日期 及 (x1, y1) 和 (x2, y2) 数据点的数据。
设置 X 轴 ticklabels 的主要格式化程序。
使用 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()
输出
它会产生以下输出 −
广告