statsmodels.graphics.boxplots.beanplot

statsmodels.graphics.boxplots.beanplot(data, ax=None, labels=None, positions=None, side='both', jitter=False, plot_opts={})[source]

每个数据集在序列中的豆图。

豆图是 小提琴图(每个点的概率密度函数的核密度估计)与所有单个数据点的线散点图的组合。

Parameters:
datasequence[array_like]

数据数组,每个位置对应一个数组。

axAxesSubplot

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

labelslist[str], optional

水平轴的刻度标签。如果没有给出,则使用整数 1..len(data)

positionsarray_like, optional

位置数组,用作图形的横轴。如果没有给出,小提琴图的间距将是等距的。

side{‘both’, ‘left’, ‘right’}, optional

如何绘制小提琴图。默认是‘both’。可以使用‘left’、‘right’选项来创建非对称的小提琴图。

jitterbool, optional

如果为真,则在琴形图内抖动标记,而不是在中心周围绘制常规线条。如果数据非常密集,这可能会很有用。

plot_optsdict, optional

一个包含绘图选项的字典。所有适用于violinplot的选项都可以指定,它们将直接传递给violinplot。特定于beanplot的选项包括:

  • ‘violin_width’float. Relative width of violins. Max available

    space 是 1,默认是 0.8。

  • ‘bean_color’, MPL color. Color of bean plot lines. Default is ‘k’.

    也用于抖动标记边缘颜色,如果抖动为True。

  • ‘bean_size’, scalar. Line length as a fraction of maximum length.

    默认值为0.5。

  • ‘bean_lw’,标量。线宽,默认值为0.5。

  • ‘bean_show_mean’,布尔值。如果为True(默认),显示均值为一条线。

  • ‘bean_show_median’, bool. If True (default), show median as a

    标记。

  • ‘bean_mean_color’, MPL 颜色。 均值线的颜色。 默认是 ‘b’。

  • ‘bean_mean_lw’,标量。 均值线的线宽,默认值为2。

  • ‘bean_mean_size’, scalar. Line length as a fraction of maximum length.

    默认值为0.5。

  • ‘bean_median_color’, MPL color. Color of median marker. Default

    是‘r’。

  • ‘bean_median_marker’, MPL 标记。标记类型,默认是 ‘+’。

  • ‘jitter_marker’, MPL marker. Marker type for jitter=True.

    默认是‘o’。

  • ‘jitter_marker_size’, int. 标记大小。默认值是4。

  • ‘jitter_fc’, MPL 颜色。抖动标记面颜色。默认值为 None。

  • ‘bean_legend_text’, 字符串。如果提供,则添加带有指定文本的图例。

Returns:
Figure

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

另请参阅

violinplot

小提琴图,也在beanplot内部使用。

matplotlib.pyplot.boxplot

标准箱线图。

参考文献

P. Kampstra, “Beanplot: 一种用于分布可视化比较的箱线图替代方法”, J. Stat. Soft., 第28卷, 第1-9页, 2008年.

示例

我们使用了1996年美国国家选举调查数据集,其中受访者的党派认同作为自变量,以及其他数据(包括年龄)作为因变量。

>>> data = sm.datasets.anes96.load_pandas()
>>> party_ID = np.arange(7)
>>> labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat",
...           "Independent-Indpendent", "Independent-Republican",
...           "Weak Republican", "Strong Republican"]

按党派ID分组年龄,并创建一个小提琴图:

>>> plt.rcParams['figure.subplot.bottom'] = 0.23  # keep labels visible
>>> age = [data.exog['age'][data.endog == id] for id in party_ID]
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> sm.graphics.beanplot(age, ax=ax, labels=labels,
...                      plot_opts={'cutoff_val':5, 'cutoff_type':'abs',
...                                 'label_fontsize':'small',
...                                 'label_rotation':30})
>>> ax.set_xlabel("Party identification of respondent.")
>>> ax.set_ylabel("Age")
>>> plt.show()

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

../_images/graphics_boxplot_beanplot.png

Last update: Oct 16, 2024