statsmodels.graphics.functional.rainbowplot

statsmodels.graphics.functional.rainbowplot(data, xdata=None, depth=None, method='MBD', ax=None, cmap=None)[source]

为一组曲线创建一个彩虹图。

彩虹图包含数据集中所有曲线的线图,按功能深度顺序着色。中位曲线以黑色显示。

Parameters:
datasequence of ndarrays or 2-D ndarray

用于创建功能箱线图的函数向量。如果是一个1-D数组的序列,这些数组的大小应该相同。第一个轴是函数索引,第二个轴是函数定义的轴。因此 data[0, :] 是第一个功能曲线。

xdatandarray, optional

数据的独立变量。如果没有给出,则假设为整数数组 0..N-1,其中 N 是 data 中向量的长度。

depthndarray, optional

一个表示数据的带深度的一维数组,或等效的顺序统计量。 如果没有给出,它将通过banddepth计算。

method{‘MBD’, ‘BD2’}, optional

用于计算波段深度的方法。默认是‘MBD’。

axAxesSubplot, optional

如果指定,此子图将用于绘图,而不是创建新图形。

cmapMatplotlib LinearSegmentedColormap instance, optional

用于为曲线着色的颜色映射。默认使用彩虹颜色映射,其中红色用于最中心的曲线,紫色用于最不中心的曲线。

Returns:
Figure

如果 ax 为 None,则创建图形。否则为 ax 连接的图形。

另请参阅

banddepth, fboxplot

参考文献

[1] R.J. Hyndman and H.L. Shang, “Rainbow Plots, Bagplots, and Boxplots for

功能数据”,第19卷,第29-25页,2010年。

示例

加载厄尔尼诺数据集。包含60年太平洋海洋海面温度数据。

>>> import matplotlib.pyplot as plt
>>> import statsmodels.api as sm
>>> data = sm.datasets.elnino.load()

创建一个彩虹图:

>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> res = sm.graphics.rainbowplot(data.raw_data[:, 1:], ax=ax)
>>> ax.set_xlabel("Month of the year")
>>> ax.set_ylabel("Sea surface temperature (C)")
>>> ax.set_xticks(np.arange(13, step=3) - 1)
>>> ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"])
>>> ax.set_xlim([-0.2, 11.2])
>>> plt.show()

(源代码, png, 高分辨率png, pdf)

../_images/graphics_functional_rainbowplot.png

Last update: Oct 16, 2024