分类目录:《系统学习Python》总目录
matplotlib.pyplot
是Matplotlib的基于状态的接口。它提供了一种隐式的、类似MATLAB的绘图方式。它还会在您的屏幕上打开图形,并充当图形GUI管理器。
语法
matplotlib.pyplot.plot(*args, scalex=True, scaley=True , data=None, ** kwargs)
函数定义
matplotlib.pyplot.plot([x], y, [fmt], *, data=None, **kwargs)
matplotlib.pyplot.plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
其中,可选参数fmt
是定义基本格式(如:颜色、标记和线型)的便捷方式。
绘制多组数据
若需要绘制多组数据,有如下三种方法:
- 多次调用
matplotlib.pyplot.plot
matplotlib.pyplot.plot(x1, y1, 'bo')
matplotlib.pyplot.plot(x2, y2, 'go')
- 传入二维数组
如果x
或y
是二维数组,将为每一列绘制一个单独的数据集。如果x
和y
都是二维的,则它们必须具有相同的形状。如果其中只有一个是形状为(N, m)
,则另一个必须具有长度N
并将用于每个数据集m
。
x = [1, 2, 3]
y = numpy.array([[1, 2], [3, 4], [5, 6]])
matplotlib.pyplot.plot(x, y)
相当于:
for col in range(y.shape[1]):
matplotlib.pyplot.plot(x, y[:, col])
- 指定多组
[x]
、y
、[fmt]
:
matplotlib.pyplot.plot(x1, y1, 'g^', x2, y2, 'g-')
在这种情况下,任何附加的关键字参数都适用于所有数据集。此外,此语法不能与data
参数结合使用。
默认情况下,每行都分配有由“样式循环”指定的不同样式。仅当您希望显式偏离这些默认值时,才需要fmt
和line
属性参数。或者,您也可以使用rcParams["axes.prop_cycle"]
更改样式循环。
参数
-
x
,y
:类数组或标量。数据点的水平/垂直坐标。x
值是可选的,默认为range(len(y))
。通常,这些参数是一维数组。它们也可以是标量或二维的,在这种情况下,列表示单独的数据集。 -
fmt
:str
,可选。格式字符串只是快速设置基本行属性的缩写。所有这些以及更多也可以通过关键字参数来控制,但此参数不能作为关键字传递。 -
scalex
,scaley
:bool
, 默认为True
,这些参数确定视图限制是否适应数据限制。值被传递给autoscale_view
。 -
data
:数据可索引对象,可选。带有标签数据的对象。如果给定,请提供要在x
和y
中绘制的标签名称。 -
**kwargs
:Line2D
属性,可选。kwargs
用于指定线标签、线宽、抗锯齿、标记面颜色等属性。
返回值
Line2D
清单,表示绘制数据的线列表。
格式化字符串fmt
格式字符串由颜色、标记和线条部分组成:
fmt = '[marker][line][color]'
其中的每一个都是可选的。如果未提供,则使用样式循环中的值。例外:如果line
给出,但没有marker
,数据将是一条没有标记的行。[color][marker][line]
也支持其他组合,但它们的解析可能不明确。
标记
特点 | 描述 |
| 点标记 |
| 像素标记 |
| 圆圈标记 |
| triangle_down标记 |
| triangle_up标记 |
| triangle_left标记 |
| triangle_right标记 |
| tri_down标记 |
| tri_up标记 |
| tri_left标记 |
| tri_right标记 |
| 八角形标记 |
| 方形标记 |
| 五边形标记 |
| 加(填充)标记 |
| 星标记 |
| hexagon1标记 |
| hexagon2标记 |
| 加号标记 |
| x标记 |
| x(填充)标记 |
| 钻石标记 |
| 薄钻石标记 |
| 线标记 |
| 线标记 |
线型
特点 | 描述 |
| 实线样式 |
| 虚线样式 |
| 点划线样式 |
| 虚线样式 |
颜色
特点 | 描述 |
| 蓝色 |
| 绿色 |
| 红色 |
| 青色 |
| 品红 |
| 黄色 |
| 黑色 |
| 白色 |
如果颜色是格式字符串的唯一部分,您可以另外使用任何matplotlib.colors
规范,例如全名 ( 'green')
或十六进制字符串 ( '#008000')
。
实例
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.show()
输出: