首页 > 编程笔记 > Python笔记 阅读:18

Matplotlib plot()创建折线图详解(附带实例)

折线图主要用于展示数据随时间的变化趋势。如需创建折线图,可以使用 pyplot 模块中的 plot() 函数或 Axes 对象的 plot() 方法。

创建只有一条折线的折线图

折线图由多个点之间的连接线组成,每个点都有一对 x、y 坐标,所以需要两组数据。

使用 plot() 函数或 plot() 方法创建折线图时,即使只有一组数据,也可以创建折线图。当只有一组数据时,会自动将该组数据作为每个点的 y 轴坐标,这些点的 x 轴坐标默认使用从 0 开始的连续整数。例如,如果有 6 个点,则它们的 x 轴坐标依次为 0、1、2、3、4 和 5。

下面的代码是使用 Axes 对象的 plot() 方法为一组数据创建折线图:
import matplotlib.pyplot as plt
y = [5, 7, 3, 9, 1]
fig, ax = plt.subplots()
ax.plot(y)
plt.show()
如下图所示:


图 1 使用一组数据创建折线图

下面的代码将为两组数据创建折线图:
import matplotlib.pyplot as plt
x = [1, 3, 5, 7, 9]
y = [80, 20, 80, 20, 80]
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
如下图所示:


图 2 使用两组数据创建折线图

创建包含多条折线的折线图

如需在一个图表中绘制多条折线,只需多次调用 plot() 函数或 plot() 方法。

下面的代码是在图表中绘制 3 条折线:
import matplotlib.pyplot as plt
x1 = [1, 3, 5, 7, 9]
y1 = [60, 30, 60, 30, 60]
x2 = [1, 3, 5, 7, 9]
y2 = [60, 60, 60, 60, 60]
x3 = [3, 4, 5, 6, 7]
y3 = [30, 30, 30, 30, 30]
fig, ax = plt.subplots()
ax.plot(x1, y1)
ax.plot(x2, y2)
ax.plot(x3, y3)
plt.show()
如下图所示:


图 3 在一个图表中绘制多条折线

设置折线节点的样式

默认情况下,绘制的折线所连接的各个数据点与线条之间是平滑过渡的。如果希望这些数据点在折线图中明显可见,可以改变它们的样式。

在 plot() 函数或 plot() 方法中指定 marker 参数,可以设置点的形状,这些形状以字符串格式作为 marker 参数的值,如下表所示。

表:marker参数的取值
取值 形状
.
, 像素
o
* 星号
+ 加号
| 竖线
_ 横线
v 下三角形
^ 上三角形
< 左三角形
> 右三角形
1 下花三角形
2 上花三角形
3 左花三角形
4 右花三角形
8 八边形
d 小菱形
D 大菱形
h 竖六边形
H 横六边形
p 五角星
P 填充后的加号
s 正方形
x 叉子
X 填充后的叉子

下面的代码将 marker 参数的值设置为“o”(字母 O 的小写形式),将折线图中的各个点显示为实心圆,如下图所示:


图 4 将各个点显示为实心圆

默认情况下,各个点的形状都是实心的。如需改为空心,可以在 plot() 函数或 plot() 方法中指定 markerfacecolor 参数,并将其值设置为 w(white 的首字母),代码如下:
import matplotlib.pyplot as plt

x = [1, 3, 5, 7, 9]
y = [80, 20, 80, 20, 80]
fig, ax = plt.subplots()
ax.plot(x, y, marker='o', markerfacecolor='w')
plt.show()
创建的折线图如下图所示:


图 5 将各个点的形状设置为空心

如需改变各个点的大小,可以使用 markersize 参数。下面的代码将折线图中各个点的大小设置为 10 个像素:
import matplotlib.pyplot as plt

x = [1, 3, 5, 7, 9]
y = [80, 20, 80, 20, 80]
fig, ax = plt.subplots()
ax.plot(x, y, marker='o', markersize=10)
plt.show()
如下图所示:


图 6 将各个点的形状设置为空心

相关文章