当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python matplotlib plot用法及代码示例


本文简要介绍 python 语言中 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)

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

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

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

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

绘制多组数据

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

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

    >>> plot(x1, y1, 'bo')
    >>> plot(x2, y2, 'go')
  • 如果x 和/或y 是二维数组,将为每一列绘制一个单独的数据集。如果 xy 都是二维的,则它们必须具有相同的形状。如果其中只有一个是形状为 (N, m) 的 2D,则另一个必须具有长度 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仅当您希望显式偏离这些默认值时,才需要和 line 属性参数。或者,您也可以使用更改样式周期rcParams["axes.prop_cycle"](默认:cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']))。

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

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

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

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

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

fmt str,可选

格式字符串,例如'ro' 用于红色圆圈。有关格式字符串的完整说明,请参阅Notes 部分。

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

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

data 可索引对象,可选

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

注意

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

返回
Line2D 列表

表示绘制数据的线列表。

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

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

**kwargs 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

bool

antialiased 或 aa

bool

clip_box

BboxBase 或无

clip_on

bool

clip_path

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

color 或 c

color

dash_capstyle

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

dash_joinstyle

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

dashes

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

data

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

drawstyle 或 ds

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

figure

Figure

fillstyle

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

gapcolor

颜色或无

gid

str

in_layout

bool

label

object

linestyle 或 ls

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

linewidth 或 lw

float

marker

标记样式字符串, Path MarkerStyle

markeredgecolor 或机械

color

markeredgewidth 或喵喵

float

markerfacecolor 或 mfc

color

markerfacecoloralt 或 mfcalt

color

markersize 或毫秒

float

markevery

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

mouseover

bool

path_effects

AbstractPathEffect 列表

picker

浮点数或可调用[[艺术家,事件],元组[布尔,字典]]

pickradius

float

rasterized

bool

sketch_params

(比例:浮点数,长度:浮点数,随机性:浮点数)

snap

布尔或无

solid_capstyle

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

solid_joinstyle

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

transform

unknown

url

str

visible

bool

xdata

一维数组

ydata

一维数组

zorder

float

注意

格式化字符串

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

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'

hexagon1 标记

'H'

hexagon2 标记

'+'

加号标记

'x'

x 标记

'X'

x(填充)标记

'D'

钻石标记

'd'

thin_diamond 标记

'|'

线标记

'_'

线标记

线型

字符

说明

'-'

实线样式

'--'

虚线样式

'-.'

dash-dot线型

':'

虚线样式

示例格式字符串:

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

blue

'g'

green

'r'

red

'c'

cyan

'm'

magenta

'y'

yellow

'k'

black

'w'

white

以及索引到默认属性周期的'CN' 颜色。

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

相关用法


注:本文由纯净天空筛选整理自skytowner.com大神的英文原创作品 matplotlib.pyplot.plot。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。