matplotlib.axes.Axes.plot#

Axes.plot(*args, scalex=True, scaley=True, data=None, **kwargs)[source]#

将 y 对 x 绘制为线和/或标记。

调用签名

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

点或线节点的坐标由 x 和 y 给出。

可选参数 fmt 是一种定义颜色、标记和线型等基本格式的便捷方式。它是一种缩写字符串表示法,详见下方的 Notes 部分。

>>> plot(x, y)        # plot x and y using default line style and color
>>> plot(x, y, 'bo')  # plot x and y using blue circle markers
>>> plot(y)           # plot y using x as index array 0..N-1
>>> plot(y, 'r+')     # ditto, but with red plusses

你可以使用 Line2D 属性作为关键字参数,以便更好地控制外观。线属性和 fmt 可以混合使用。以下两个调用产生相同的结果:

>>> plot(x, y, 'go--', linewidth=2, markersize=12)
>>> plot(x, y, color='green', marker='o', linestyle='dashed',
...      linewidth=2, markersize=12)

当与 fmt 冲突时,关键字参数具有更高的优先级。

绘制带标签的数据

有一种绘制带标签数据(即可以通过索引 obj['y'] 访问的数据)对象的便捷方式。你无需分别提供 x 和 y 数据,只需在 data 参数中提供对象,并给出 x 和 y 的标签即可。

>>> plot('xlabel', 'ylabel', data=obj)

支持所有可索引的对象。例如,这可以是一个 dict、一个 pandas.DataFrame 或一个结构化的 numpy 数组。

绘制多组数据

有多种绘制多组数据的方法。

  • 最直接的方法是多次调用 plot。例如:

    >>> plot(x1, y1, 'bo')
    >>> plot(x2, y2, 'go')
    
  • 如果 x 和/或 y 是二维数组,则会为每一列绘制一个独立的数据集。如果 x 和 y 均为二维,它们必须具有相同的形状。如果其中只有一个是形状为 (N, m) 的二维数组,则另一个必须具有长度 N,并将用于每一组 m 数据集。

    示例

    >>> x = [1, 2, 3]
    >>> y = np.array([[1, 2], [3, 4], [5, 6]])
    >>> plot(x, y)
    

    等同于

    >>> for col in range(y.shape[1]):
    ...     plot(x, y[:, col])
    
  • 第三种方法是指定多组 [x], y, [fmt] 分组。

    >>> plot(x1, y1, 'g^', x2, y2, 'g-')
    

    在这种情况下,任何额外的关键字参数都适用于所有数据集。此外,这种语法不能与 data 参数组合使用。

默认情况下,每条线都会被分配一个由“样式循环(style cycle)”指定的不同样式。仅当需要明确偏离这些默认值时,才需要使用 fmt 和线属性参数。或者,你也可以使用 rcParams["axes.prop_cycle"] 更改样式循环(默认值:cycler('color', [(0.12156862745098039, 0.4666666666666667, 0.7058823529411765), (1.0, 0.4980392156862745, 0.054901960784313725), (0.17254901960784313, 0.6274509803921569, 0.17254901960784313), (0.8392156862745098, 0.15294117647058825, 0.1568627450980392), (0.5803921568627451, 0.403921568627451, 0.7411764705882353), (0.5490196078431373, 0.33725490196078434, 0.29411764705882354), (0.8901960784313725, 0.4666666666666667, 0.7607843137254902), (0.4980392156862745, 0.4980392156862745, 0.4980392156862745), (0.7372549019607844, 0.7411764705882353, 0.13333333333333333), (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)]))。

参数:
x, y类数组或浮点数

数据点的水平/垂直坐标。x 值是可选的,默认为 range(len(y))。

通常,这些参数为一维数组。

它们也可以是标量或二维(在这种情况下,列代表独立的数据集)。

这些参数不能作为关键字传递。

fmtstr,可选

格式字符串,例如 'ro' 表示红色圆圈。有关格式字符串的完整描述,请参阅 Notes 部分。

格式字符串仅是快速设置基本线属性的缩写。所有这些及更多属性都可以通过关键字参数进行控制。

此参数不能作为关键字传递。

data可索引对象,可选

一个带标签数据的对象。如果给出,则提供要在 *x* 和 *y* 中绘制的标签名称。

注意

技术上,在第二个标签是有效 fmt 的调用中存在轻微的歧义。plot('n', 'o', data=obj) 可能是 plt(x, y) 或 plt(y, fmt)。在这种情况下,会选择前者,但会发出警告。你可以通过添加一个空格式字符串 plot('n', 'o', '', data=obj) 来抑制该警告。

返回:
Line2D 列表

表示所绘制数据的线条列表。

其他参数:
scalex, scaley布尔值,默认值:True

这些参数确定视图限制是否根据数据限制进行调整。这些值被传递给 autoscale_view。

**kwargsLine2D 属性,可选

kwargs 用于指定诸如线条标签(用于自动图例)、线宽、抗锯齿、标记表面颜色等属性。例如:

>>> plot([1, 2, 3], [1, 2, 3], 'go-', label='line 1', linewidth=2)
>>> plot([1, 2, 3], [1, 4, 9], 'rs', label='line 2')

如果你在一次 plot 调用中指定了多条线,kwargs 将应用于所有这些线。如果 label 对象是可迭代的,则每个元素都用作每组数据的标签。

以下是可用的 Line2D 属性列表:

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

animated

布尔值

antialiased 或 aa

布尔值

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

color 或 c

color

dash_capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

dash_joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

dashes

浮点数序列(点中的开/关墨迹)或 (None, None)

data

(2, N) 数组或两个一维数组

drawstyle 或 ds

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'},默认值: 'default'

figure

Figure 或 SubFigure

fillstyle

{'full', 'left', 'right', 'bottom', 'top', 'none'}

gapcolor

颜色 或 None

gid

str

in_layout

布尔值

label

object

linestyle 或 ls

{'-', '--', '-.', ':', '', ...} 或 (offset, on-off-seq)

linewidth 或 lw

浮点数

marker

标记样式字符串、Path 或 MarkerStyle

markeredgecolor 或 mec

color

markeredgewidth 或 mew

浮点数

markerfacecolor 或 mfc

color

markerfacecoloralt 或 mfcalt

color

markersize 或 ms

浮点数

markevery

None 或 int 或 (int, int) 或 slice 或 list[int] 或 float 或 (float, float) 或 list[bool]

mouseover

布尔值

path_effects

AbstractPathEffect 列表

picker

浮点数或 callable[[Artist, Event], tuple[bool, dict]]

pickradius

浮点数

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

solid_capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

solid_joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

transform

未知

url

str

visible

布尔值

xdata

一维数组

ydata

一维数组

zorder

浮点数

另请参阅

散点图

带有大小和/或颜色可变标记的 XY 散点图(有时也称为气泡图)。

备注

格式字符串

格式字符串包含颜色、标记和线条的部分。

fmt = '[marker][line][color]'

每一部分都是可选的。如果不提供,则使用样式循环中的值。例外:如果给出了 line 但没有给出 marker,则数据将显示为不带标记的线条。

也支持诸如 [color][marker][line] 之类的其他组合,但请注意其解析可能会有歧义。

标记

字符

描述

'.'

点标记

','

像素标记

'o'

圆圈标记

'v'

向下三角形标记

'^'

向上三角形标记

'<'

向左三角形标记

'>'

向右三角形标记

'1'

向下三叉标记

'2'

向上三叉标记

'3'

向左三叉标记

'4'

向右三叉标记

'8'

八角形标记

's'

方形标记

'p'

五角形标记

'P'

加号(填充)标记

'*'

星形标记

'h'

六角形1标记

'H'

六角形2标记

'+'

加号标记

'x'

x 标记

'X'

x(填充)标记

'D'

菱形标记

'd'

细菱形标记

'|'

垂直线标记

'_'

水平线标记

线型

字符

描述

'-'

实线样式

'--'

虚线样式

'-.'

点划线样式

':'

点线样式

示例格式字符串

'b'    # blue markers with default shape
'or'   # red circles
'-g'   # green solid line
'--'   # dashed line with default color
'^k:'  # black triangle_up markers connected by a dotted line

颜色

支持的颜色缩写是单字母代码

字符

color

'b'

蓝色

'g'

绿色

'r'

红色

'c'

青色

'm'

品红色

'y'

黄色

'k'

黑色

'w'

白色

以及索引默认属性循环的 'CN' 颜色。

如果颜色是格式字符串的唯一部分,你还可以使用任何 matplotlib.colors 规范,例如全名('green')或十六进制字符串('#008000')。

使用 matplotlib.axes.Axes.plot 的示例#

折线图

折线图

虚线样式配置

虚线样式配置

Markevery 演示

Markevery 演示

标记参考

标记参考

无限线条

无限线条

带有刻度路径效果的线条

带有刻度路径效果的线条

将标记属性映射到多变量数据

将标记属性映射到多变量数据

步进图演示

步进图演示

带透明度的 fill_between

带透明度的 fill_between

填充两条线之间的区域

填充两条线之间的区域

填充两条垂直线之间的区域

填充两条垂直线之间的区域

EventCollection 演示

EventCollection 演示

带线条、日期和文本的时间线

带线条、日期和文本的时间线

hlines 和 vlines

hlines 和 vlines

使用 fill_between 填充由逻辑掩码定义的区域

使用 fill_between 填充由逻辑掩码定义的区域

绘制分类变量

绘制分类变量

pcolormesh 网格和着色

pcolormesh 网格和着色

三角插值演示

三角插值演示

不规则间隔数据的等高线图

不规则间隔数据的等高线图

等高线角掩码

等高线角掩码

频谱图

频谱图

带误差带的曲线

带误差带的曲线

箱线图

箱线图

功率谱密度 (PSD)

功率谱密度 (PSD)

互谱密度 (CSD)

互谱密度 (CSD)

极坐标图

极坐标图

极坐标图例

极坐标图例

多个子图

多个子图

使用 plt.subplots 创建多个子图

使用 plt.subplots 创建多个子图

坐标轴演示

坐标轴演示

使用受限布局调整坐标轴大小

使用受限布局调整坐标轴大小

使用紧密布局调整坐标轴大小

使用紧密布局调整坐标轴大小

以编程方式控制子图调整

以编程方式控制子图调整

使用边距和粘性边缘控制视图限制

使用边距和粘性边缘控制视图限制

坐标轴框纵横比

坐标轴框纵横比

图形子图形

图形子图形

共享坐标轴

共享坐标轴

反向坐标轴

反向坐标轴

带有不同刻度的图

带有不同刻度的图

带有坐标轴脊线的多个 Y 轴

带有坐标轴脊线的多个 Y 轴

带有 delta_zorder 的双轴图

带有 delta_zorder 的双轴图

次坐标轴

次坐标轴

对齐标签和标题

对齐标签和标题

坐标轴属性

坐标轴属性

图形标签:suptitle, supxlabel, supylabel

图形标签:suptitle, supxlabel, supylabel

断裂坐标轴

断裂坐标轴

绘制跨越坐标轴的区域

绘制跨越坐标轴的区域

主次刻度

主次刻度

将 x/y 轴刻度和标签移至顶部和右侧

将 x/y 轴刻度和标签移至顶部和右侧

刻度之间居中标签

刻度之间居中标签

多级(嵌套)刻度

多级(嵌套)刻度

美元刻度

美元刻度

使用工程记数法格式化刻度

使用工程记数法格式化刻度

SI 前缀偏移量和自然数量级顺序

SI 前缀偏移量和自然数量级顺序

从值列表设置刻度标签

从值列表设置刻度标签

日期刻度标签

日期刻度标签

使用 ConciseDateFormatter 格式化日期刻度

使用 ConciseDateFormatter 格式化日期刻度

日期转换器演示

日期转换器演示

时间序列的自定义刻度格式化程序

时间序列的自定义刻度格式化程序

日期精度和纪元

日期精度和纪元

Asinh 刻度

Asinh 刻度

对数对数纵横比

对数对数纵横比

Symlog 刻度

Symlog 刻度

坐标轴脊线

坐标轴脊线

坐标轴脊线放置

坐标轴脊线放置

带箭头的居中坐标轴脊线

带箭头的居中坐标轴脊线

文本属性

文本属性

数据坐标中的文本旋转角度

数据坐标中的文本旋转角度

注释图

注释图

注释图表

注释图表

注释极坐标图

注释极坐标图

注释箭头样式参考

注释箭头样式参考

比例不变角度标签

比例不变角度标签

图例演示

图例演示

使用预定义标签的图例

使用预定义标签的图例

组合自定义图例

组合自定义图例

带重音的文本

带重音的文本

数学文本

数学文本

数学字体系列

数学字体系列

使用 TeX 渲染数学方程

使用 TeX 渲染数学方程

标题定位

标题定位

文本水印

文本水印

带方向箭头的椭圆演示

带方向箭头的椭圆演示

PathPatch 对象

PathPatch 对象

贝塞尔曲线

贝塞尔曲线

颜色演示

颜色演示

按 Y 值着色

按 Y 值着色

默认属性周期中的颜色

默认属性周期中的颜色

从色彩映射中选择单个颜色

从色彩映射中选择单个颜色

深色背景样式表

深色背景样式表

FiveThirtyEight 样式表

FiveThirtyEight 样式表

ggplot 样式表

ggplot 样式表

在三维图上绘制二维数据

在三维图上绘制二维数据

三维箱体表面图

三维箱体表面图

参数曲线

参数曲线

洛伦兹吸引子

洛伦兹吸引子

同一图形中的二维和三维坐标轴

同一图形中的二维和三维坐标轴

3D 绘图的缩放(对数、对称对数等)

3D 绘图的缩放(对数、对称对数等)

具有固定物理大小的坐标轴

具有固定物理大小的坐标轴

简单寄生轴

简单寄生轴

简单轴线4

简单轴线4

轴线样式

轴线样式

寄生坐标轴演示

寄生坐标轴演示

寄生轴演示

寄生轴演示

使用 axisartist 自定义坐标轴脊线

使用 axisartist 自定义坐标轴脊线

简单轴线

简单轴线

基础动画线图

基础动画线图

衰减

衰减

贝叶斯更新

贝叶斯更新

双摆问题

双摆问题

多坐标轴动画

多坐标轴动画

动画三维随机游走

动画三维随机游走

Matplotlib 解链

Matplotlib 解链

带注释光标

带注释光标

按钮

按钮

复选按钮

复选按钮

光标

光标

多光标

多光标

单选按钮网格

单选按钮网格

矩形和椭圆选择器

矩形和椭圆选择器

滑块

滑块

将滑块捕捉到离散值

将滑块捕捉到离散值

跨度选择器

跨度选择器

文本框

文本框

鼠标移动和点击事件

鼠标移动和点击事件

十字光标

十字光标

数据浏览器

数据浏览器

按键事件

按键事件

图例选择

图例选择

放大镜

放大镜

路径编辑器

路径编辑器

选择事件演示

选择事件演示

选择事件演示 2

选择事件演示 2

数据重采样

数据重采样

计时器

计时器

CanvasAgg 演示

CanvasAgg 演示

埃文斯测试

埃文斯测试

识别艺术家是否相交

识别艺术家是否相交

自定义投影

自定义投影

路径效果演示

路径效果演示

将 SVG 滤镜应用于线条

将 SVG 滤镜应用于线条

TickedStroke 路径效果

TickedStroke 路径效果

Zorder 演示

Zorder 演示

图形解剖

图形解剖

曲线下面积的积分

曲线下面积的积分

32 年来的股票价格

32 年来的股票价格

XKCD

XKCD

安斯库姆四重奏

安斯库姆四重奏

石川图

石川图

雷达图(又称蜘蛛图或星图)

雷达图(又称蜘蛛图或星图)

Artist 教程

Artist 教程

编程快捷方式

编程快捷方式

plot(x, y)

plot(x, y)

fill_between(x, y1, y2)

fill_between(x, y1, y2)

tricontour(x, y, z)

tricontour(x, y, z)

tricontourf(x, y, z)

tricontourf(x, y, z)

tripcolor(x, y, z)

tripcolor(x, y, z)

fill_between(x1, y1, z1, x2, y2, z2)

fill_between(x1, y1, z1, x2, y2, z2)

plot(xs, ys, zs)

plot(xs, ys, zs)

快速入门指南

快速入门指南

使用 Matplotlib 制作动画

使用 Matplotlib 制作动画

使用 blitting 提高渲染速度

使用 blitting 提高渲染速度

使用 cycler 进行样式设置

使用 cycler 进行样式设置

路径教程

路径教程

变换教程

变换教程

在图中排列多个坐标轴

在图中排列多个坐标轴

坐标轴自动缩放

坐标轴自动缩放

坐标轴刻度

坐标轴刻度

坐标轴刻度

坐标轴刻度

绘制日期和字符串

绘制日期和字符串

约束布局指南

约束布局指南

图例指南

图例指南

复杂和语义图形构图(subplot_mosaic)

复杂和语义图形构图(subplot_mosaic)

紧凑布局指南

紧凑布局指南

指定颜色

指定颜色

注解

注解

Matplotlib 中的文本

Matplotlib 中的文本