matplotlib.axes.Axes.plot#

Axes.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))

通常,这些参数是1D数组。

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

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

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 将应用于所有这些行。如果 label 对象是可迭代的,则每个元素将用作每组数据的标签。

以下是可用的 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'}

dashes

浮点数序列(开/关墨水以点为单位)或 (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

float

标记

标记样式字符串,PathMarkerStyle

markeredgecolor 或 mec

color

markeredgewidth 或 mew

float

markerfacecolor 或 mfc

color

markerfacecoloralt 或 mfcalt

color

markersize 或 ms

float

markevery

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

鼠标悬停

布尔

path_effects

AbstractPathEffect 列表

picker

float 或 callable[[Artist, Event], tuple[bool, dict]]

pickradius

float

光栅化

布尔

sketch_params

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

snap

布尔值或无

solid_capstyle

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

solid_joinstyle

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

变换

未知

url

str

可见

布尔

xdata

一维数组

ydata

一维数组

zorder

float

参见

scatter

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

注释

格式字符串

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

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.axes.Axes.plot 的示例#

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

Custom tick formatter for time series