matplotlib.pyplot.plot#

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)[源代码][源代码]#

以线条和/或标记绘制 y 相对于 x 的图。

调用签名:

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

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

可选参数 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'] 访问的数据)。您可以在 data 参数中提供对象,而只需提供 xy 的标签:

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

所有可索引的对象都受支持。例如,这可以是 dictpandas.DataFrame 或结构化的 numpy 数组。

绘制多组数据

有多种方法可以绘制多组数据。

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

    >>> plot(x1, y1, 'bo')
    >>> plot(x2, y2, 'go')
    
  • 如果 x 和/或 y 是二维数组,将为每一列绘制一个单独的数据集。如果 xy 都是二维的,它们必须具有相同的形状。如果其中一个是二维的,形状为 (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"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) 来更改样式循环。

参数:
x, y类数组或标量

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

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

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

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

fmtstr, 可选

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

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

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

数据可索引对象,可选

带有标签数据的对象。如果提供,请提供要在 xy 中绘制的标签名称。

备注

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

返回:
Line2D 的列表

表示绘制数据的行列表。

其他参数:
scalex, scaleybool, 默认: True

这些参数决定视图限制是否适应数据限制。这些值传递给 autoscale_view

**kwargs : Line2D 属性, 可选Line2D 属性,可选

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

标量或无

animated

布尔值

抗锯齿 或 aa

布尔值

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

补丁或(路径,变换)或无

颜色 或 c

color

dash_capstyle

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

dash_joinstyle

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

虚线

浮点数序列(开/关墨水以点为单位)或 (None, None)

数据

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

drawstyle 或 ds

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

figure

FigureSubFigure

fillstyle

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

gapcolor

color or None

gid

str

in_layout

布尔值

标签

对象

linestyle 或 ls

{'-', '--', '-.', ':', '', (偏移, 开关序列), ...}

linewidth 或 lw

浮动

标记

标记样式字符串, PathMarkerStyle

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]

鼠标悬停

布尔值

path_effects

AbstractPathEffect 列表

picker

浮点数或可调用对象[[Artist, Event], 元组[布尔值, 字典]]

pickradius

浮动

光栅化

布尔值

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

solid_capstyle

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

solid_joinstyle

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

transform

未知

url

str

可见

布尔值

xdata

一维数组

ydata

一维数组

zorder

浮动

参见

散点图

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

注释

备注

这是 axes.Axes.plotpyplot 包装器

格式字符串

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

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

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

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

标记

角色

描述

'.'

点标记

','

像素标记

'o'

圆圈标记

'v'

triangle_down 标记

'^'

triangle_up 标记

'<'

triangle_left 标记

'>'

triangle_right 标记

'1'

tri_down 标记

'2'

tri_up 标记

'3'

tri_left 标记

'4'

tri_right 标记

'8'

八角形标记

's'

方形标记

'p'

五边形标记

'P'

加号(填充)标记

'*'

星号标记

'h'

六边形1 标记

'H'

六边形2 标记

'+'

加号标记

'x'

x 标记

'X'

x (填充) 标记

'D'

钻石标记

'd'

thin_diamond 标记

'|'

vline 标记

'_'

hline 标记

线条样式

角色

描述

'-'

实线样式

'--'

虚线样式

'-.'

虚线样式

':'

虚线样式

示例格式字符串:

'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

颜色

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

角色

颜色

'b'

蓝色

'g'

绿色

'r'

红色

'c'

青色

'm'

洋红色

'y'

黄色

'k'

黑色

'w'

白色

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

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

使用 matplotlib.pyplot.plot 的示例#

帧抓取

Frame grabbing

将图像打印到标准输出

Print image to stdout

工具管理器

Tool Manager