当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.Series.plot.bar用法及代码示例


用法:

Series.plot.bar(x=None, y=None, **kwargs)

垂直条形图。

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

参数

x标签或位置,可选

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

y标签或位置,可选

允许绘制一列与另一列。如果未指定,则使用所有数字列。

colorstr,array-like,或 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 时,每列返回一个带有一个 matplotlib.axes.Axes 的 ndarray。

例子

基本情节。

>>> df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
>>> ax = df.plot.bar(x='lab', y='val', rot=0)
pandas-Series-plot-bar-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.bar(rot=0)
pandas-Series-plot-bar-2.png

绘制 DataFrame 的堆积条形图

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

可以使用 subplots=True 按列拆分图形,而不是嵌套。在这种情况下,返回matplotlib.axes.Axesnumpy.ndarray

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

如果您不喜欢默认颜色,您可以指定每列的颜色。

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

绘制单个列。

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

仅绘制 DataFrame 的选定类别。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.plot.bar。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。