python matplotlib绘制多条折线图

本文介绍如何使用Python的Matplotlib库绘制带有多个数据系列的折线图,并添加了数据点、标题、轴标签、图例等元素,同时展示了如何在每个数据点上添加文本标签,以便更清晰地展示数据。
该文章已生成可运行项目,

python matplotlib绘制多条折线图

代码

import matplotlib.pyplot as plt

x = [6, 24, 48, 72]
y1 = [87, 174, 225, 254]
y2 = [24, 97, 202, 225]
y3 = [110, 138, 177, 205]
y4 = [95, 68, 83, 105]
y5 = [72, 74, 76, 67]
plt.title('扩散速度')  # 折线图标题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
plt.xlabel('时间')  # x轴标题
plt.ylabel('差值')  # y轴标题
plt.plot(x, y1, marker='o', markersize=3)  # 绘制折线图,添加数据点,设置点的大小
plt.plot(x, y2, marker='o', markersize=3)
plt.plot(x, y3, marker='o', markersize=3)
plt.plot(x, y4, marker='o', markersize=3)
plt.plot(x, y5, marker='o', markersize=3)

for a, b in zip(x, y1):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)  # 设置数据标签位置及大小
for a, b in zip(x, y2):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
for a, b in zip(x, y3):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
for a, b in zip(x, y4):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
for a, b in zip(x, y5):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)

plt.legend(['方案一', '方案二', '方案三', '方案四', '方案五'])  # 设置折线名称

plt.show()  # 显示折线图

折线图

在这里插入图片描述

本文章已经生成可运行项目
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在 Python 的数据可视化领域,matplotlib 是一个关键的库,它具备强大的图形绘制功能,比如绘制折线图和散点图等。本教程重点讲解如何借助 matplotlib 在同一图表中绘制多条折线图和散点图,便于进行数据对比与分析。首先,需要导入相关库,包括 random(用于生成随机数据)以及 matplotlib 中的 pyplot 子模块(通常用别名 plt 表示)。导入语句如下: 文中还给出了一个 list2mat 函数,其作用是将一个列表按照指定宽度 w 进行切片并转置,这在处理时间序列数据时很有帮助,比如把每月的数据转换成列的形式,方便绘制多条曲线。该函数接收数据列表和窗口大小作为参数,返回一个二维列表。函数代码如下: 此外,还有 draw_pic_test 函数,用于实际绘图。在该函数中,先生成 100 个随机整数,模拟不同月份的数据,然后调用 list2mat 函数将其转换为适合绘制的格式。接着使用 plt.plot 函数绘制折线图,其中 "x-" 表示用交叉标记连接的线条,通过设置 label 属性添加图例,之后保存图像并关闭当前图形。代码如下: 同样地,利用 plt.scatter 函数绘制散点图,设置 marker 参数为 "x" 指定标记形状,label 属性用于图例,s 参数设置点的大小,最后保存图像并关闭图形。代码如下: 运行 draw_pic_test 函数后,会得到两张图片,分别是折线图(test_zhexian.png)和散点图(test_sandian.png)。这种可视化方法有助于清晰地比较不同数据序列随时间的变化趋势。总的来说,借助 matplotlib 模块,我们可以在 Python 中轻松创建多条折线图和散点图,这对于数据探索和分析非常重要。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值