matplotlib.pyplot.plot#

matplotlib.pyplot.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)

点或线节点的坐标由 xy 给出。

可选参数 fmt 是一种方便的方式,用于定义基本格式,如颜色、标记和线型。它是一种在下面“备注”部分描述的快捷字符串表示法。

>>> 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* 参数结合使用。

默认情况下,每条线都被分配一个由“样式循环”指定的不同样式。只有当您希望明确偏离这些默认值时,才需要 *fmt* 和线条属性参数。另外,您还可以使用 rcParams["axes.prop_cycle"](默认值:cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']))来更改样式循环。

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

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

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

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

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

fmtstr,可选

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

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

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

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')

如果您在一个绘图调用中指定多条线,则 kwargs 适用于所有这些线。如果标签对象是可迭代的,则每个元素都用作每组数据的标签。

以下是可用的 Line2D 属性列表

属性

描述

agg_filter

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

alpha

浮点数或 None

animated

布尔值

antialiasedaa

布尔值

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

colorc

color

dash_capstyle

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

dash_joinstyle

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

dashes

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

data

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

drawstyleds

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

figure

FigureSubFigure

fillstyle

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

gapcolor

颜色 或 None

gid

字符串

in_layout

布尔值

label

对象

linestylels

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

linewidthlw

浮点数

marker

标记样式字符串,PathMarkerStyle

markeredgecolormec

color

markeredgewidthmew

浮点数

markerfacecolormfc

color

markerfacecoloraltmfcalt

color

markersizems

浮点数

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

字符串

visible

布尔值

xdata

一维数组

ydata

一维数组

zorder

浮点数

另请参阅

散点图

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

备注

注意

这是 pyplot 封装器,用于 axes.Axes.plot

格式字符串

格式字符串由颜色、标记和线条部分组成

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

它们都是可选的。如果未提供,则使用样式循环中的值。例外:如果给出了 line,但没有 marker,数据将是一条没有标记的线。

还支持其他组合,例如 [color][marker][line],但请注意,它们的解析可能存在歧义。

标记

character

描述

'.'

点标记

','

像素标记

'o'

圆圈标记

'v'

向下三角形标记

'^'

向上三角形标记

'<'

向左三角形标记

'>'

向右三角形标记

'1'

向下三点标记

'2'

向上三点标记

'3'

向左三点标记

'4'

向右三点标记

'8'

八边形标记

's'

方形标记

'p'

五边形标记

'P'

加号(填充)标记

'*'

星形标记

'h'

六边形1标记

'H'

六边形2标记

'+'

加号标记

'x'

x标记

'X'

x(填充)标记

'D'

菱形标记

'd'

细菱形标记

'|'

垂直线标记

'_'

水平线标记

线型

character

描述

'-'

实线样式

'--'

虚线样式

'-.'

点划线样式

':'

点线样式

示例格式字符串

'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

颜色

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

character

color

'b'

蓝色

'g'

绿色

'r'

红色

'c'

青色

'm'

品红色

'y'

黄色

'k'

黑色

'w'

白色

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

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

使用 matplotlib.pyplot.plot 的示例#

帧捕获

帧捕获

按 Y 值着色

按 Y 值着色

三角插值演示

三角插值演示

绘制掩码值和 NaN 值

绘制掩码值和 NaN 值

带掩码值的散点图

带掩码值的散点图

折线图

折线图

阶梯图演示

阶梯图演示

步进图演示

步进图演示

坐标报告

坐标报告

自定义 Rc

自定义 Rc

Findobj 演示

Findobj 演示

多页 PDF

多页 PDF

将图像打印到标准输出

将图像打印到标准输出

设置和获取属性

设置和获取属性

transforms.offset_copy

transforms.offset_copy

Zorder 演示

Zorder 演示

极坐标图

极坐标图

极坐标图例

极坐标图例

简单图

简单图

使用 pyplot 的文本和数学文本

使用 pyplot 的文本和数学文本

使用 pyplot 的多条线

使用 pyplot 的多条线

使用 pyplot 的两个子图

使用 pyplot 的两个子图

自定义刻度

自定义刻度

海豚

海豚

Solarized Light 样式表

Solarized Light 样式表

自定义图形子类

自定义图形子类

在 pyplot 中管理多个图形

在 pyplot 中管理多个图形

共享坐标轴

共享坐标轴

多个子图

多个子图

对齐 Y 轴标签

对齐 Y 轴标签

使用预定义标签的图例

使用预定义标签的图例

使用字典控制文本和标签的样式

使用字典控制文本和标签的样式

标题定位

标题定位

使用重复规则放置日期刻度

使用重复规则放置日期刻度

CanvasAgg 演示

CanvasAgg 演示

工具管理器

工具管理器

Pyplot 教程

Pyplot 教程

路径效果指南

路径效果指南

使用样式表和 rcParams 定制 Matplotlib

使用样式表和 rcParams 定制 Matplotlib

快速入门指南

快速入门指南