pandas.core.groupby.DataFrameGroupBy.plot#

property DataFrameGroupBy.plot[源代码]#

绘制 Series 或 DataFrame 的图。

使用 plotting.backend 选项指定的后端。默认情况下,使用 matplotlib。

Parameters:
dataSeries 或 DataFrame

调用方法的对象。

x标签或位置,默认为 None

仅当数据是 DataFrame 时使用。

y标签、位置或标签列表、位置列表,默认为 None

允许绘制一列与另一列的比较。仅当数据是 DataFrame 时使用。

kindstr

要生成的图的类型:

  • ‘line’ : 折线图 (默认)

  • ‘bar’ : 垂直条形图

  • ‘barh’ : 水平条形图

  • ‘hist’ : 直方图

  • ‘box’ : 箱线图

  • ‘kde’ : 核密度估计图

  • ‘density’ : 与 ‘kde’ 相同

  • ‘area’ : 面积图

  • ‘pie’ : 饼图

  • ‘scatter’ : 散点图 (仅限 DataFrame)

  • ‘hexbin’ : 六边形二元图 (仅限 DataFrame)

axmatplotlib 轴对象,默认为 None

当前图的轴。

subplots布尔值或可迭代对象序列,默认为 False

是否将列分组到子图中:

  • False : 不使用子图

  • True : 为每列制作单独的子图。

  • 列标签的可迭代对象序列:为每组列创建一个子图。例如 [(‘a’, ‘c’), (‘b’, ‘d’)] 将创建 2 个子图:一个包含列 ‘a’ 和 ‘c’,另一个包含列 ‘b’ 和 ‘d’。未指定的剩余列将在附加子图中绘制(每个列一个)。

    在 1.5.0 版本加入.

sharexbool,如果 ax 为 None,则默认为 True;否则默认为 False

如果 subplots=True,则共享 x 轴并将一些 x 轴标签设为不可见;如果 ax 为 None,则默认为 True,否则如果传入 ax,则默认为 False;请注意,同时传入 ax 和 sharex=True 会改变图中所有轴的所有 x 轴标签。

shareybool,默认 False

如果 subplots=True,则共享 y 轴并将一些 y 轴标签设为不可见。

layout元组,可选

用于子图布局的(行数,列数)。

figsize以英寸为单位的元组(宽度,高度)。

图形对象的大小。

use_indexbool, default True

使用索引作为 x 轴的刻度。

titlestr 或 list

用于绘图的标题。如果传入字符串,则在图形顶部打印该字符串。如果传入列表且 subplots 为 True,则在每个相应子图的上方打印列表中的每个项。

gridbool,默认为 None(matlab 样式默认值)。

轴网格线。

legendbool 或 {‘reverse’}

将图例放置在轴子图上。

stylelist 或 dict

每列的 matplotlib 线条样式。

logxbool 或 ‘sym’,默认为 False。

在 x 轴上使用对数缩放或对称对数缩放。

logybool 或 ‘sym’,默认为 False。

在 y 轴上使用对数缩放或对称对数缩放。

loglogbool 或 ‘sym’,默认为 False。

在 x 轴和 y 轴上都使用对数缩放或对称对数缩放。

xtickssequence

用作 xticks 的值。

ytickssequence

用作 yticks 的值。

xlim2 元组/列表

设置当前轴的 x 轴限制。

ylim2 元组/列表

设置当前轴的 y 轴限制。

xlabel标签,可选

用作 x 轴的 xlabel 名称。默认使用索引名称作为 xlabel,或平面图的 x 列名称。

在 2.0.0 版本发生变更: 现在也适用于直方图。

ylabel标签,可选

用作 y 轴的 ylabel 名称。默认不显示 ylabel,或平面图的 y 列名称。

在 2.0.0 版本发生变更: 现在也适用于直方图。

rotfloat,默认 None

刻度的旋转角度(xticks 用于垂直图,yticks 用于水平图)。

fontsizefloat,默认 None

xticks 和 yticks 的字体大小。

colormapstr 或 matplotlib colormap 对象,默认为 None。

用于选择颜色的颜色映射。如果为字符串,则从 matplotlib 加载具有该名称的颜色映射。

colorbarbool, optional

如果为 True,则绘制颜色条(仅适用于“散点”和“六边形图”)。

positionfloat

为条形图布局指定相对对齐方式。从 0(左/底部端)到 1(右/顶部端)。默认为 0.5(中心)。

tablebool、Series 或 DataFrame,默认为 False。

如果为 True,则使用 DataFrame 中的数据绘制表格,并且数据将被转置以满足 matplotlib 的默认布局。如果传入 Series 或 DataFrame,则使用传入的数据绘制表格。

yerrDataFrame、Series、array-like、dict 和 str。

See Plotting with Error Bars for detail.

xerrDataFrame、Series、array-like、dict 和 str。

等同于 yerr。

stackedbool,在折线图和条形图中默认为 False,在面积图中默认为 True。

如果为 True,则创建堆叠图。

secondary_ybool 或 sequence,默认为 False。

如果为列表/元组,是否绘制在次 y 轴上,哪些列绘制在次 y 轴上。

mark_rightbool, default True

使用 secondary_y 轴时,在图例中标注“(right)”列名。

include_boolbool,默认为 False。

如果为 True,则可以绘制布尔值。

backendstr,默认 None

用于替换选项 plotting.backend 中指定的后端。例如,’matplotlib’。或者,要为整个会话指定 plotting.backend,请设置 pd.options.plotting.backend

**kwargs

传递给 matplotlib 绘图方法的选项。

Returns:
matplotlib.axes.Axes 或它们的 numpy.ndarray。

如果后端不是默认的 matplotlib 后端,返回值将是后端返回的对象。

Notes

  • 有关此主题的更多信息,请参阅 matplotlib 在线文档。

  • 如果 kind`=’bar’ 或 ‘barh’,您可以通过 `position 关键字为条形图布局指定相对对齐方式。从 0(左/底部端)到 1(右/顶部端)。默认为 0.5(中心)。

Examples

对于 Series:

>>> ser = pd.Series([1, 2, 3, 3])
>>> plot = ser.plot(kind='hist', title="My plot")
../../_images/pandas-core-groupby-DataFrameGroupBy-plot-1.png

对于 DataFrame:

>>> df = pd.DataFrame({'length': [1.5, 0.5, 1.2, 0.9, 3],
...                   'width': [0.7, 0.2, 0.15, 0.2, 1.1]},
...                   index=['pig', 'rabbit', 'duck', 'chicken', 'horse'])
>>> plot = df.plot(title="DataFrame Plot")
../../_images/pandas-core-groupby-DataFrameGroupBy-plot-2.png

对于 SeriesGroupBy:

>>> lst = [-1, -2, -3, 1, 2, 3]
>>> ser = pd.Series([1, 2, 2, 4, 6, 6], index=lst)
>>> plot = ser.groupby(lambda x: x > 0).plot(title="SeriesGroupBy Plot")
../../_images/pandas-core-groupby-DataFrameGroupBy-plot-3.png

对于 DataFrameGroupBy:

>>> df = pd.DataFrame({"col1" : [1, 2, 3, 4],
...                   "col2" : ["A", "B", "A", "B"]})
>>> plot = df.groupby("col2").plot(kind="bar", title="DataFrameGroupBy Plot")
../../_images/pandas-core-groupby-DataFrameGroupBy-plot-4_00.png
../../_images/pandas-core-groupby-DataFrameGroupBy-plot-4_01.png