pandas.DataFrame.plot.bar#

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

垂直条形图。

条形图是一种通过矩形条呈现分类数据,其长度与它们所代表的值成比例的图。条形图显示离散类别之间的比较。图的一个轴显示正在比较的具体类别,另一个轴表示测量值。

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

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

y标签或位置,可选

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

color字符串,类数组,或字典,可选

DataFrame 各列的颜色。可能的值包括:

  • 单个颜色字符串,可通过名称、RGB 或 RGBA 代码引用,例如“red”或“#a98d19”。

  • 颜色字符串序列,可通过名称、RGB 或 RGBA 代码引用,将递归用于每列。例如,[‘green’,’yellow’] 将依次为每列的条形填充绿色或黄色。如果只有一列要绘制,则只使用颜色列表中的第一个颜色。

  • 形式为 {列名 : 颜色} 的字典,以便每列将相应着色。例如,如果你的列名为 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-DataFrame-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)
../../_images/pandas-DataFrame-plot-bar-2.png

为 DataFrame 绘制堆叠条形图。

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

而不是嵌套,可以使用 subplots=True 按列拆分图形。在这种情况下,将返回一个由 matplotlib.axes.Axes 组成的 numpy.ndarray

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

如果您不喜欢默认颜色,可以指定希望为每列着色的方式。

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

绘制单列。

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

仅为 DataFrame 绘制选定的类别。

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