如果 Pandas 的 X 轴是日期时间索引,如何绘制多色线?
如果 Pandas 的 X 轴是日期时间索引,要绘制多色线,我们可以执行以下步骤 -
- 设置图像尺寸并调整子图之间和周围的边距。
- 使用 numpy 创建 d、y 和 s 数据点。
- 创建一个图像和一组子图。
- 使用 numpy 获取 xval、p 和 s 数据点。
- 获取具有热色彩映射和 s 数据点的线集合实例。
- 设置主要轴和次要轴定位器,并设置轴格式化程序。
- 使用数据限制自动缩放视图限制。
- 要显示图像,请使用 show() 方法。
示例
import pandas as pd from matplotlib import pyplot as plt, dates as mdates, collections as c import numpy as np plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True d = pd.date_range("2021-01-01", "2021-06-01", freq="7D") y = np.cumsum(np.random.normal(size=len(d))) s = pd.Series(y, index=d) fig, ax = plt.subplots() xval = mdates.date2num(s.index.to_pydatetime()) p = np.array([xval, s.values]).T.reshape(-1, 1, 2) s = np.concatenate([p[:-1], p[1:]], axis=1) lc = c.LineCollection(s, cmap="hot") lc.set_array(xval) ax.add_collection(lc) ax.xaxis.set_major_locator(mdates.MonthLocator()) ax.xaxis.set_minor_locator(mdates.DayLocator()) m = mdates.DateFormatter("%b") ax.xaxis.set_major_formatter(m) ax.autoscale_view() plt.show()
输出
它将生成以下输出
广告