pandas.Series.plot.bar#

Series.plot.bar(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.barh

水平条形图。

DataFrame.plot

绘制 DataFrame 的图表。

matplotlib.pyplot.bar

使用 matplotlib 制作条形图。

示例

基本图表。

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

绘制整个数据框到条形图中。每个列被分配一个不同的颜色,每行在水平轴上嵌套在一个组中。

>>> 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.bar(rot=0)
../../_images/pandas-Series-plot-bar-2.png

绘制 DataFrame 的堆积条形图

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

不是嵌套,可以通过 subplots=True 按列拆分图形。在这种情况下,会返回一个 numpy.ndarraymatplotlib.axes.Axes

>>> axes = df.plot.bar(rot=0, subplots=True)
>>> axes[1].legend(loc=2)  
../../_images/pandas-Series-plot-bar-4.png

如果你不喜欢默认的颜色,你可以指定你希望每一列的颜色。

>>> axes = df.plot.bar(
...     rot=0, subplots=True, color={"speed": "red", "lifespan": "green"}
... )
>>> axes[1].legend(loc=2)  
../../_images/pandas-Series-plot-bar-5.png

绘制单列。

>>> ax = df.plot.bar(y='speed', rot=0)
../../_images/pandas-Series-plot-bar-6.png

仅为 DataFrame 绘制选定的类别。

>>> ax = df.plot.bar(x='lifespan', rot=0)
../../_images/pandas-Series-plot-bar-7.png