【技术专题】Matplotlib3 Python 数据可视化 - Matplotlib3 绘制折线图(Lines)

0 阅读3分钟

大家好,我是锋哥。最近连载更新《Matplotlib3 Python 数据可视化》技术专题。

image.png

本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。同时也配套视频教程 《2026版 Matplotlib3 Python 数据可视化 视频教程》

折线图是数据可视化中最常用的图表类型之一,特别适合展示数据随时间或有序类别的变化趋势。

plt.plot() 是 Matplotlib 中最核心的函数之一,用于创建二维线图(折线图)。它功能强大且灵活,支持多种数据格式和样式定制。以下是全面解析:

plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

核心参数:

参数说明
xx轴数据(可省略,默认为[0, 1, ..., len(y)-1])
yy轴数据(必需)
fmt格式字符串,控制线条样式(颜色、标记、线型)
**kwargs其他样式参数(覆盖fmt设置)

格式字符串(fmt)详解

格式字符串由三部分组成:[颜色][标记][线型],例如 'ro--' 表示红色圆圈标记的虚线

1. 颜色字符

字符颜色
'b'蓝色
'g'绿色
'r'红色
'c'青色
'm'品红
'y'黄色
'k'黑色
'w'白色

2. 标记字符

字符标记
'.'
'o'圆圈
's'正方形
'D'菱形
'^'上三角形
'v'下三角形
'*'星号
'+'加号
'x'叉号

3. 线型字符

字符线型
'-'实线(默认)
'--'虚线
'-.'点划线
':'点线
'None'无线条

常用关键字参数(**kwargs

参数说明示例
color / c线条颜色color='skyblue', c='#FF5733'
linestyle / ls线型linestyle='dotted'
linewidth / lw线宽linewidth=2.5
marker标记样式marker='D'
markersize / ms标记大小markersize=8
markerfacecolor / mfc标记填充色markerfacecolor='red'
markeredgecolor / mec标记边缘色markeredgecolor='black'
alpha透明度alpha=0.7
label图例标签label='Temperature'

我们看一个简单示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)  # 0到10之间的100个点
y = np.sin(x)

# 创建图形
plt.figure(figsize=(10, 6))

# 绘制折线图
plt.plot(x, y,
         label='sin(x)',  # 图例标签
         color='royalblue',  # 线条颜色
         linewidth=2,  # 线条宽度
         linestyle='-',  # 线条样式(实线)
         alpha=0.8)  # 透明度

# 添加标题和标签
plt.title('基本正弦波', fontsize=14)
plt.xlabel('X-轴', fontsize=12)
plt.ylabel('Y-轴', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)  # 添加网格
plt.legend()  # 显示图例

plt.tight_layout()
plt.show()

image.png

我们在看一个画多条折线图示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)  # 0到10之间的100个点
y = np.sin(x)

plt.figure(figsize=(10, 6))

# 创建多条曲线
plt.plot(x, np.sin(x), label='sin(x)', color='#1f77b4', linewidth=2)
plt.plot(x, np.cos(x), label='cos(x)', color='#ff7f0e', linewidth=2)
plt.plot(x, np.sin(x) * np.cos(x), label='sin(x)cos(x)', color='#2ca02c',
         linestyle='--', linewidth=2)

# 添加标题和标签
plt.title('三角函数比较', fontsize=14)
plt.xlabel('角度(弧度)', fontsize=12)
plt.ylabel('函数值', fontsize=12)

# 添加网格和图例
plt.grid(True, linestyle=':', alpha=0.6)
plt.legend(loc='upper right', fontsize=10)

# 设置坐标轴范围
plt.xlim(0, 10)
plt.ylim(-1.2, 1.2)

plt.tight_layout()
plt.show()

运行显示:

image.png