Python Matplotlib绘制折线图:从基础到带标签的多线图实战

花开有时
花开有时
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍如何使用Python Matplotlib库绘制折线图。内容涵盖基础单条折线绘制、添加数据标签以及多条折线对比图的实现方法,并提供完整的Python代码示例与参数说明,帮助开发者快速掌握Matplotlib绘图技巧。

Matplotlib简介

Matplotlib是Python中最知名的绘图库之一,它提供了一套与Matlab相似的命令式API,非常适合进行交互式图形绘制。此外,它还可以作为绘图控件轻松嵌入到GUI应用程序中。

该库拥有完善的文档支持,其Gallery页面展示了上百个缩略图示例,每个示例均附带源程序。因此,当需要绘制特定类型的图表时,只需在该页面浏览、复制并粘贴相关代码,通常即可解决绘图需求。

在Linux环境下,较为知名的数据可视化工具包括Gnuplot,这是一款免费软件。虽然Python有包可以调用Gnuplot,但其语法相对晦涩,且生成的图像质量不如Matplotlib。

相比之下,Matplotlib表现更为强劲:它兼具Matlab的语法简洁性、Python语言的易用性,以及LaTeX级别的绘图质量(支持使用内嵌的LaTeX引擎绘制数学公式)。

1、绘制单条折线图示例

import matplotlib.pyplot as plt
import numpy as np

x_axis_data = [1,2,3,4,5,6,7] #x
y_axis_data = [68,69,79,71,80,70,66] #y

plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc')#'bo-'表示蓝色实线,数据点实心原点标注
## plot中参数的含义分别是横轴值,纵轴值,线的形状('s'方块,'o'实心圆点,'*'五角星   ...,颜色,透明度,线的宽度和标签 ,

plt.legend()  #显示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
 
#plt.ylim(-1,1)#仅设置y轴坐标范围
plt.show()

运行上述代码,可得到如下结果:

2、绘制带数据标签的折线图

在绘制线条的代码之前,加入以下代码以添加数据标签:

for x, y in zip(x_axis_data, y_axis_data):
    plt.text(x, y+0.3, '%.00f' % y, ha='center', va='bottom', fontsize=7.5)#y_axis_data1加标签数据

完整的代码如下所示:

import matplotlib.pyplot as plt
import numpy as np

x_axis_data = [1,2,3,4,5,6,7] #x
y_axis_data = [68,69,79,71,80,70,66] #y

for x, y in zip(x_axis_data, y_axis_data):
    plt.text(x, y+0.3, '%.00f' % y, ha='center', va='bottom', fontsize=7.5)#y_axis_data1加标签数据
    
plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc')#'bo-'表示蓝色实线,数据点实心原点标注
## plot中参数的含义分别是横轴值,纵轴值,线的形状('s'方块,'o'实心圆点,'*'五角星   ...,颜色,透明度,线的宽度和标签 ,

plt.legend()  #显示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
 
#plt.ylim(-1,1)#仅设置y轴坐标范围
plt.show()

3、绘制多条折线图

import matplotlib.pyplot as plt
import numpy as np
 
#epoch,acc,loss,val_acc,val_loss
x_axis_data = [1,2,3,4,5,6,7]
y_axis_data1 = [68.72,69.17,69.26,69.63,69.35,70.3,66.8]
y_axis_data2 = [71,73,52,66,74,82,71]
y_axis_data3 = [82,83,82,76,84,92,81]

        
#画图 
plt.plot(x_axis_data, y_axis_data1, 'b*--', alpha=0.5, linewidth=1, label='acc')#'
plt.plot(x_axis_data, y_axis_data2, 'rs--', alpha=0.5, linewidth=1, label='acc')
plt.plot(x_axis_data, y_axis_data3, 'go--', alpha=0.5, linewidth=1, label='acc')

 
plt.legend()  #显示上面的label
plt.xlabel('time')
plt.ylabel('number')#accuracy
 
#plt.ylim(-1,1)#仅设置y轴坐标范围
plt.show()

运行上述代码,可得到如下结果:

4、绘制多条带数据标签的折线图

import matplotlib.pyplot as plt
import numpy as np
 
#epoch,acc,loss,val_acc,val_loss
x_axis_data = [1,2,3,4,5,6,7]
y_axis_data1 = [68.72,69.17,69.26,69.63,69.35,70.3,66.8]
y_axis_data2 = [71,73,52,66,74,82,71]
y_axis_data3 = [82,83,82,76,84,92,81]
        
#画图 
plt.plot(x_axis_data, y_axis_data1, 'b*--', alpha=0.5, linewidth=1, label='acc')#'
plt.plot(x_axis_data, y_axis_data2, 'rs--', alpha=0.5, linewidth=1, label='acc')
plt.plot(x_axis_data, y_axis_data3, 'go--', alpha=0.5, linewidth=1, label='acc')

## 设置数据标签位置及大小
for a, b in zip(x_axis_data, y_axis_data1):
    plt.text(a, b, str(b), ha='center', va='bottom', fontsize=8)  #  ha='center', va='top'
for a, b1 in zip(x_axis_data, y_axis_data2):
    plt.text(a, b1, str(b1), ha='center', va='bottom', fontsize=8)  
for a, b2 in zip(x_axis_data, y_axis_data3):
    plt.text(a, b2, str(b2), ha='center', va='bottom', fontsize=8)
plt.legend()  #显示上面的label

plt.xlabel('time')
plt.ylabel('number')#accuracy
 
#plt.ylim(-1,1)#仅设置y轴坐标范围
plt.show()

运行上述代码,可得到如下结果:

以下列出常用的标记形状,可与颜色参数搭配使用:

‘s’ : 方块状 ‘o’ : 实心圆 ‘^’ : 正三角形 ‘v’ : 反正三角形 ‘+’ : 加号 ‘*’ : 星号 ‘x’ : x号 ‘p’ : 五角星 ‘1’ : 三脚架标记 ‘2’ : 三脚架标记

总结

至此,关于使用Python Matplotlib绘制折线图的教程介绍完毕。如需了解更多相关内容,请搜索本站过往文章或继续浏览后续文章,感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。