软件测试|使用matplotlib绘制多种折线图

简介

在数据可视化领域,Matplotlib是一款非常强大的Python库,它可以用于绘制各种类型的图表,包括折线图。本文将介绍如何使用Matplotlib创建多种不同类型的折线图,并提供示例代码。

创建模版

在绘图之前,我们可以先创建我们的绘图模版,节省我们的时间,后续绘图只需要我们直接绘图即可,不再需要我们单独设置图像大小清晰度等问题,代码如下:

import matplotlib.pyplot as plt

# 画布
plt.figure(figsize=(9, 3),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

plt.plot()
plt.show()

运行脚本,绘制的模版如下:

创建基本折线图

首先,我们将创建一个基本的折线图,用于显示一组数据的趋势。假设我们有一个月份和销售额的数据集,我们希望将其可视化成折线图,代码如下:

import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = 'FangSong'

# 画布
plt.figure(figsize=(9, 6),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

# 数据
months = ['一月', '二月', '三月', '四月', '五月']
sales = [10000, 12000, 9000, 11000, 13000]

# 创建折线图
plt.plot(months, sales)

# 添加标题和标签
plt.title('每月销售额')
plt.xlabel('月份')
plt.ylabel('销售额(元)')

# 显示图表
plt.show()

运行脚本,绘制的折线图如下所示:

上述代码首先导入Matplotlib库,然后创建了一个包含月份和销售额的数据集。接下来,使用plt.plot()函数创建折线图,然后使用plt.title()plt.xlabel()plt.ylabel()函数添加标题和标签。最后,使用plt.show()函数显示图表。

创建多个折线图

有时候,我们希望在同一个图中显示多条折线,以便进行比较。以下是一个示例,展示了两个产品的销售趋势:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'FangSong'

plt.figure(figsize=(9, 6),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

# 数据
months = ['一月', '二月', '三月', '四月', '五月']
product1_sales = [10000, 12000, 9000, 11000, 13000]
product2_sales = [8000, 9500, 8200, 10500, 11000]

# 创建折线图
plt.plot(months, product1_sales, label='产品1')
plt.plot(months, product2_sales, label='产品2')

# 添加标题和标签
plt.title('产品销售趋势')
plt.xlabel('月份')
plt.ylabel('销售额(元)')

# 添加图例
plt.legend()

# 显示图表
plt.show()

运行脚本,绘制的图像如下:

上述代码中,我们使用plt.plot()函数分别绘制了两个产品的销售折线,并通过label参数为每条折线添加了标签。然后,使用plt.legend()函数添加图例,以便区分两个产品的销售趋势。

创建多个子图

有时候,我们希望在同一个图中创建多个子图,以便比较不同数据集之间的关系。以下是一个示例,展示如何创建一个包含两个子图的图表:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建第一个子图
plt.subplot(2, 1, 1)
plt.plot(x, y1)
plt.title('Sin(x)')

# 创建第二个子图
plt.subplot(2, 1, 2)
plt.plot(x, y2)
plt.title('Cos(x)')

# 调整子图布局
plt.tight_layout()

# 显示图表
plt.show()

运行脚本,生成的图像如下图:

上述代码中,我们使用plt.subplot()函数创建了一个包含两个子图的图表。第一个参数表示总行数,第二个参数表示总列数,第三个参数表示当前子图的索引。然后,分别在两个子图中绘制了不同的折线图,并使用plt.tight_layout()函数调整了子图的布局。

总结

Matplotlib是一个强大的Python库,可用于创建各种类型的折线图以及其他数据可视化图表。在本文中,我们演示了如何创建基本折线图、多个折线图和多个子图,以满足不同的可视化需求。希望这些示例能帮助你更好地使用Matplotlib进行数据可视化。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/323410.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

9 微信小程序

拍卖功能 9 拍卖今日概要今日详细1.celery1.1 环境的搭建1.2 快速使用1.3 django中应用celery1.4 celery定时执行1.5 周期性定时任务 2.拍卖业务2.1 表结构2.2 数据初始化2.3 接口 9 拍卖 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料&…

二叉树简介

二叉树 二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。 二叉树的遍历 二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。 前序遍历:访问根节点 --> 遍历左子树 --> 遍历右子树中序遍历&…

基于AI视频智能分析技术的周界安全防范方案

一、背景分析 随着科技的不断进步,AI视频智能检测技术已经成为周界安全防范的一种重要手段。A智能分析网关V4基于深度学习和计算机视觉技术,可以通过多种AI周界防范算法,实时、精准地监测人员入侵行为,及时发现异常情况并发出警报…

SeaTunnel 海量数据同步工具的使用(连载中……)

一、概述 SeaTunnel 是一个非常易用,高性能、支持实时流式和离线批处理的海量数据处理产品,前身是 WaterDrop (中文名:水滴),自 2021年10月12日更名为 SeaTunnel 。2021年12月9日,SeaTunnel 正式…

数字化和信息化概念

数字化和信息化,是两个不同的概念,它们各自有着特定的含义和应用场景。 1、数字化 数字化指的是将物理实体、过程或数据转化为数字形式的过程。这一过程中可能包括将纸质文档转化为电子文件、模拟信号转换成数字信号,或者是将实物产品转变…

RT-Thread: eeprom存储芯片 at24cxx软件包使用流程

说明:介绍 i2c 通讯接口的 eeprom at24cxx 读写测、试代码,代码基于 at24cxx 软件包实现。 使用步骤: * 1:在 RT-Thread Settings 中开启 【软件模拟I2C】 * 2:在 RT-Thread Settings 软件包中搜索 at24cxx 添加软件…

深入理解零拷贝技术

注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。 粉丝福利, 免费领取C/C 开发学习资料包、技术视频/代码,1000道大厂面试题,内容包括(C基础,网络编程&#xff…

浅讲人工智能,初识人工智能几个重要领域。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

PTA-7-4 堆排序

代码如下: #include<iostream> using namespace std; void change(int arr[], int n, int i); int main() {int n,i,end,arr[1000];cin >> n;for (i 0; i < n; i){cin >> arr[i];}//进行一次排序,把最大值放到顶端for (i n/2-1; i > 0; i--){change…

Linux 下GEO Server发布图层后,中文乱码解决方案

发布的图层&#xff0c;显示中文乱码&#xff0c;都是框框&#xff1a;如“口口” 第一步先查看Linux字符集 如下命令所示&#xff1a; 1.查看当前系统语言 echo $LANG2.查看安装的语言包 locale如果上面的命令执行后显示的是en_US.UTF-8&#xff0c;则说明当前语言系统及安…

汇编语言与接口技术实验报告——单总线温度采集

一、 实验要求 实验目的&#xff1a; 掌握数码管的使用方式掌握DS18B20温度传感器的工作原理掌握单总线通信方式实现MCU与DS18B20数据传输 实验内容&#xff1a; 学习DS18B20温度传感器的单总线传输机制&#xff0c;通过单片机MCU的I/O实现温度采集&#xff0c;并将数据显示在…

Ubuntu配置NFS客户端和服务端详解——手把手配置

Ubuntu配置NFS客户端和服务端 如果您想实现远程访问并修改 ROS 主机中 Ubuntu 上的文件&#xff0c;可以通过 NFS挂载的方式。虚拟机上的 Ubuntu 系统可以通过 NFS 的方式来访问 ROS 主机中Ubuntu 系统的文件&#xff0c;NFS 分为服务器挂载和客户端访问。这里虚拟机上的 Ubun…

KubeSphere 在 vsleem 的落地实践

作者&#xff1a;方忠&#xff0c;苏州威视通智能科技有限公司技术经理&#xff0c;开源技术爱好者&#xff0c;长期活跃于 dromara 开源社区并参与贡献。 公司介绍 公司简介 苏州威视通智能科技有限公司&#xff0c;是一家全球领先的全景 AI 平台提供商&#xff0c;结合极致…

界面控件DevExpress WPF属性网格 - 让应用轻松显示编辑各种属性事件

DevExpress WPF Property Grid&#xff08;属性网格&#xff09;灵感来自于Visual Studio&#xff0c;Visual Studio启发的属性窗口(对象检查器)让在WPF应用程序显示和编辑任何对象的属性和事件变得更容易&#xff01; P.S&#xff1a;DevExpress WPF拥有120个控件和库&#x…

Elasticsearch添加7.17.10IK分词器

Elasticsearch添加7.17.10IK分词器 在https://github.com/medcl/elasticsearch-analysis-ik/tree/7.x中未找到7.17.10版本的发布版本&#xff0c;如歌ik版本和Elasticsearch版本不同安装后无法启动。所以下载git上的源代码&#xff0c;并手动编译指定版本IK分词器。 &#xff…

2. 示例:Spring Boot 入门

1.1 概述 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。习惯优于配置 1.2 为什么使用Spring Boot J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。 1.3 Spring Bo…

HarmonyOS 通过 animateTo讲解角度动画效果

本文 我们依旧来说动画 这次 我们来说角度 我们先写一个这样的代码模板 Entry Component struct Index {build() {Column({space: 30}) {Text("修改元素尺寸").fontSize(38).margin({top:188})Image("https://img2.baidu.com/it/u1814561676,2470063876&f…

gradle版本中-bin与-all区别

打开android studio下载的gradle文件&#xff0c;发现-all比-bin多了一个docs文件夹和一个src文件夹。-bin是编译后的二进制发布版&#xff0c;-all还包含了源码和文档&#xff0c;比-bin大了几十兆&#xff0c;两者其余没有区别。 android开发只关注gradle功能不关注实现的情况…

Rust-借用检查

Rust语言的核心特点是&#xff1a;在没有放弃对内存的直接控制力的情况下&#xff0c;实现了内存安全。 所谓对内存的直接控制能力&#xff0c;前文已经有所展示&#xff1a;可以自行决定内存布局&#xff0c;包括在栈上分配内存&#xff0c;还是在堆上分配内存&#xff1b;支…

虾皮广告数据:​如何利用广告数据优化虾皮(Shopee)销售业绩

在虾皮&#xff08;Shopee&#xff09;平台上&#xff0c;广告数据对于卖家来说是至关重要的&#xff0c;它可以帮助卖家了解广告的效果并进行相应的优化。通过监控和分析这些广告数据&#xff0c;卖家可以更好地理解广告的表现&#xff0c;调整广告策略&#xff0c;提高广告的…