pandas.Series.plot.barh#

Series.plot.barh(x=None, y=None, color=None, **kwargs)[源代码]#

制作一个水平条形图。

水平条形图是一种用矩形条表示定量数据的图表,矩形条的长度与它们所代表的值成比例。条形图显示了离散类别之间的比较。图表的一个轴显示被比较的特定类别,另一个轴表示测量的值。

参数:
x标签或位置,可选

允许绘制一列与另一列的对比图。如果未指定,则使用DataFrame的索引。

y标签或位置,可选

允许绘制一列与另一列的对比图。如果未指定,则使用所有数值列。

颜色str, 类数组, 或 dict, 可选

每个DataFrame列的颜色。可能的值有:

  • 一个通过名称、RGB或RGBA代码引用的单一颜色字符串,

    例如 ‘red’ 或 ‘#a98d19’。

  • 一系列通过名称、RGB或RGBA引用的颜色字符串

    代码,将递归地用于每一列。例如 [‘green’,’yellow’] 每一列的条形将交替填充绿色或黄色。如果只有一列要绘制,则只会使用颜色列表中的第一个颜色。

  • 一个形式为 {列名color}, 以便每列将会

    相应地着色。例如,如果你的列名为 ab,那么传递 {‘a’: ‘green’, ‘b’: ‘red’} 将会把列 a 的条形图着色为绿色,列 b 的条形图着色为红色。

**kwargs

其他关键字参数在 DataFrame.plot() 中有文档记录。

返回:
matplotlib.axes.Axes 或它们的 np.ndarray

subplots=True 时,返回一个 ndarray,每列对应一个 matplotlib.axes.Axes

参见

DataFrame.plot.bar

垂直条形图。

DataFrame.plot

使用 matplotlib 绘制 DataFrame 的图表。

matplotlib.axes.Axes.bar

使用 matplotlib 绘制垂直条形图。

示例

基本示例

>>> df = pd.DataFrame({'lab': ['A', 'B', 'C'], 'val': [10, 30, 20]})
>>> ax = df.plot.barh(x='lab', y='val')
../../_images/pandas-Series-plot-barh-1.png

绘制整个DataFrame到水平条形图

>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]
>>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]
>>> index = ['snail', 'pig', 'elephant',
...          'rabbit', 'giraffe', 'coyote', 'horse']
>>> df = pd.DataFrame({'speed': speed,
...                    'lifespan': lifespan}, index=index)
>>> ax = df.plot.barh()
../../_images/pandas-Series-plot-barh-2.png

为 DataFrame 绘制堆积水平条形图

>>> ax = df.plot.barh(stacked=True)
../../_images/pandas-Series-plot-barh-3.png

我们可以为每一列指定颜色

>>> ax = df.plot.barh(color={"speed": "red", "lifespan": "green"})
../../_images/pandas-Series-plot-barh-4.png

绘制 DataFrame 的一列到水平条形图

>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]
>>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]
>>> index = ['snail', 'pig', 'elephant',
...          'rabbit', 'giraffe', 'coyote', 'horse']
>>> df = pd.DataFrame({'speed': speed,
...                    'lifespan': lifespan}, index=index)
>>> ax = df.plot.barh(y='speed')
../../_images/pandas-Series-plot-barh-5.png

绘制 DataFrame 与所需列的对比

>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]
>>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]
>>> index = ['snail', 'pig', 'elephant',
...          'rabbit', 'giraffe', 'coyote', 'horse']
>>> df = pd.DataFrame({'speed': speed,
...                    'lifespan': lifespan}, index=index)
>>> ax = df.plot.barh(x='lifespan')
../../_images/pandas-Series-plot-barh-6.png