pandas.core.groupby.DataFrameGroupBy.plot#
- property DataFrameGroupBy.plot[源代码]#
绘制 Series 或 DataFrame 的图表。
使用由选项
plotting.backend
指定的后端。默认情况下,使用 matplotlib。- 参数:
- 数据系列或数据框
调用该方法的对象。
属性
x
(标签或位置,默认无)仅在数据是 DataFrame 时使用。
y
(标签,位置或标签、位置列表,默认无)允许绘制一列与另一列的对比图。仅在数据是DataFrame时使用。
种类
(str) 要生成的图表类型: - ‘line’ : 折线图 (默认) - ‘bar’ : 垂直条形图 - ‘barh’ : 水平条形图 - ‘hist’ : 直方图 - ‘box’ : 箱形图 - ‘kde’ : 核密度估计图 - ‘density’ : 同 ‘kde’ - ‘area’ : 面积图 - ‘pie’ : 饼图 - ‘scatter’ : 散点图 (仅限 DataFrame) - ‘hexbin’ : 六边形箱图 (仅限 DataFrame)
ax
(matplotlib 轴对象,默认 None)当前图形的轴。
子图
(布尔值或可迭代序列,默认为False) 是否将列分组到子图中: -
False
: 不会使用子图 -True
: 为每一列创建单独的子图。 - 列标签的可迭代序列:为每组列创建一个子图。例如 [(‘a’, ‘c’), (‘b’, ‘d’)] 将创建2个子图:一个包含列 ‘a’ 和 ‘c’,另一个包含列 ‘b’ 和 ‘d’。未指定的剩余列将在额外的子图中绘制(每列一个)。 .. versionadded:: 1.5.0sharex
(bool, 如果 ax 为 None 则默认为 True 否则为 False) 如果
subplots=True
,共享 x 轴并将某些 x 轴标签设置为不可见;如果 ax 为 None 则默认为 True,否则如果传递了 ax 则为 False;请注意,传递 ax 和sharex=True
将更改图中所有轴的 x 轴标签。sharey
(bool, 默认 False) 如果
subplots=True
,共享 y 轴并将某些 y 轴标签设置为不可见。布局
(元组,可选)(行,列)用于子图布局。
figsize
(一个以英寸为单位的 (宽度, 高度) 元组)图形对象的大小。
use_index
(bool, 默认 True) 使用索引作为 x 轴的刻度。
标题
(字符串或列表)用于绘图的标题。如果传递的是字符串,则在图形的顶部打印该字符串。如果传递的是列表并且 subplots 为 True,则在相应子图的上方打印列表中的每一项。
网格
(bool, 默认 None (matlab 风格默认)) 轴网格线。
图例
(bool 或 {‘reverse’}) 在轴子图上放置图例。
风格
(列表或字典)每列的 matplotlib 线条样式。
logx
(bool 或 ‘sym’, 默认 False) 在 x 轴上使用对数缩放或 symlog 缩放。
logy
(bool 或 ‘sym’ 默认 False) 在 y 轴上使用对数缩放或 symlog 缩放。
loglog
(bool 或 ‘sym’, 默认 False) 在 x 和 y 轴上使用对数缩放或 symlog 缩放。
xticks
(序列)用于 xticks 的值。
yticks
(序列)用于 yticks 的值。
xlim
(2元组/列表)设置当前轴的x轴限制。
ylim
(2元组/列表)设置当前轴的y轴限制。
xlabel
(标签, 可选) 用于 x 轴上 xlabel 的名称。默认使用索引名称作为 xlabel,或者对于平面图使用 x 列名称。 .. versionchanged:: 2.0.0 现在适用于直方图。
ylabel
(标签, 可选) 用于y轴ylabel的名称。默认情况下不显示ylabel,或者对于平面图显示y列名。 .. versionchanged:: 2.0.0 现在适用于直方图。
rot
(float, 默认 None) 刻度的旋转(垂直图表为 xticks,水平图表为 yticks)。
字体大小
(float, 默认 None) xticks 和 yticks 的字体大小。
colormap
(str 或 matplotlib 色图对象,默认 None)用于选择颜色的色图。如果是字符串,则从 matplotlib 加载具有该名称的色图。
colorbar
(bool, 可选) 如果为 True,绘制颜色条(仅与 ‘scatter’ 和 ‘hexbin’ 绘图相关)。
位置
(float) 指定条形图布局的相对对齐方式。从 0(左/底端)到 1(右/顶端)。默认值是 0.5(中心)。
表
(bool, Series 或 DataFrame, 默认 False) 如果为 True,使用 DataFrame 中的数据绘制表格,并且数据将被转置以适应 matplotlib 的默认布局。如果传递了 Series 或 DataFrame,则使用传递的数据绘制表格。
yerr
(DataFrame、Series、类数组、字典和字符串)详见 带误差棒的绘图。
xerr
(DataFrame、Series、类数组、字典和字符串)等同于 yerr。
stacked
(bool, 默认在折线和条形图中为False,在面积图中为True) 如果为True,创建堆积图。
secondary_y
(布尔值或序列,默认 False) 如果为列表/元组,则表示要在次要 y 轴上绘制的列。
mark_right
(bool, 默认 True) 当使用 secondary_y 轴时,自动在图例中将列标签标记为“(right)”。
include_bool
(bool, 默认是 False) 如果为 True,布尔值可以被绘制。
后端
(str, 默认 None) 使用的后端,而不是在选项
plotting.backend
中指定的后端。例如,’matplotlib’。或者,要为整个会话指定plotting.backend
,请设置pd.options.plotting.backend
。**kwargs
传递给 matplotlib 绘图方法的选项。
- 返回:
matplotlib.axes.Axes
或它们的 numpy.ndarray如果后端不是默认的 matplotlib,返回值将是后端返回的对象。
参见
matplotlib.pyplot.plot
绘制 y 相对于 x 的线图和/或标记图。
DataFrame.hist
制作一个直方图。
DataFrame.boxplot
制作一个箱形图。
DataFrame.plot.scatter
制作一个散点图,使用不同的标记点大小和颜色。
DataFrame.plot.hexbin
绘制两个变量的六边形分箱图。
DataFrame.plot.kde
使用高斯核进行核密度估计图的绘制。
DataFrame.plot.area
制作一个堆积面积图。
DataFrame.plot.bar
制作一个条形图。
DataFrame.plot.barh
制作一个水平条形图。
备注
更多关于此主题的内容,请参阅在线的 matplotlib 文档。
如果 kind = ‘bar’ 或 ‘barh’,你可以通过 position 关键字指定条形图布局的相对对齐方式。从 0(左/底端)到 1(右/顶端)。默认是 0.5(中心)
例子
对于系列:
>>> ser = pd.Series([1, 2, 3, 3]) >>> plot = ser.plot(kind="hist", title="My plot")
对于 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")
对于 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")
对于 DataFrameGroupBy:
>>> df = pd.DataFrame({"col1": [1, 2, 3, 4], "col2": ["A", "B", "A", "B"]}) >>> plot = df.groupby("col2").plot(kind="bar", title="DataFrameGroupBy Plot")