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。- **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')
如果你在一次 plot 调用中指定了多条线,kwargs 将应用于所有这些线。如果 label 对象是可迭代的,则每个元素都用作每组数据的标签。
以下是可用的
Line2D属性列表:属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
布尔值
布尔值
BboxBase或 None布尔值
Patch 或 (Path, Transform) 或 None
CapStyle或 {'butt', 'projecting', 'round'}JoinStyle或 {'miter', 'round', 'bevel'}浮点数序列(点中的开/关墨迹)或 (None, None)
(2, N) 数组或两个一维数组
{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'},默认值: 'default'
{'full', 'left', 'right', 'bottom', 'top', 'none'}
颜色 或 None
str
布尔值
object
{'-', '--', '-.', ':', '', ...} 或 (offset, on-off-seq)
浮点数
标记样式字符串、
Path或MarkerStyle浮点数
markersize或ms浮点数
None 或 int 或 (int, int) 或 slice 或 list[int] 或 float 或 (float, float) 或 list[bool]
布尔值
浮点数或 callable[[Artist, Event], tuple[bool, dict]]
浮点数
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
CapStyle或 {'butt', 'projecting', 'round'}JoinStyle或 {'miter', 'round', 'bevel'}未知
str
布尔值
一维数组
一维数组
浮点数
另请参阅
散点图带有大小和/或颜色可变标记的 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')。