软件测试|使用matplotlib绘制多种柱状图

简介

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

创建基本柱状图

首先,让我们创建一个基本的柱状图,以可视化一组数据的比较。假设我们有一个产品销售数据集,我们希望将不同产品的销售额进行比较:

import matplotlib.pyplot as plt

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

# 数据
products = ['产品A', '产品B', '产品C', '产品D', '产品E']
sales = [5000, 8000, 7500, 6000, 9000]

# 创建柱状图
plt.bar(products, sales)

# 添加标题和标签
plt.title('不同产品的销售额比较')
plt.xlabel('产品')
plt.ylabel('销售额(元)')

# 显示图表
plt.show()

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

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

创建堆叠柱状图

有时,我们希望将不同类别的数据叠加在同一个柱子上,以便更好地比较总体趋势。以下是一个示例,展示了两个月份的产品销售额,堆叠在同一个柱子上:

import matplotlib.pyplot as plt

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

# 数据
months = ['一月', '二月', '三月', '四月', '五月']
product1_sales = [5000, 6000, 5500, 7000, 8000]
product2_sales = [3000, 4000, 3500, 4500, 5000]

# 创建堆叠柱状图
plt.bar(months, product1_sales, label='产品1')
plt.bar(months, product2_sales, bottom=product1_sales, label='产品2')

# 添加标题和标签
plt.title('两个产品的销售额比较')
plt.xlabel('月份')
plt.ylabel('销售额(元)')

# 添加图例
plt.legend()

# 显示图表
plt.show()

上述代码中,我们使用plt.bar()函数分别创建了两个产品的销售额柱状图,并使用bottom参数将第二个产品的销售额叠加在第一个产品的上面。然后,使用plt.legend()函数添加图例,以区分不同产品的销售额。

创建水平柱状图

有时,我们希望创建水平方向的柱状图,以便更好地展示长条形数据。以下是一个示例,展示如何创建水平柱状图:

import matplotlib.pyplot as plt

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

import matplotlib.pyplot as plt

# 数据
categories = ['类别A', '类别B', '类别C', '类别D', '类别E']
values = [40, 30, 25, 35, 45]

# 创建水平柱状图
plt.barh(categories, values)

# 添加标题和标签
plt.title('不同类别的数值比较')
plt.xlabel('数值')
plt.ylabel('类别')

# 显示图表
plt.show()

上述代码中,我们使用plt.barh()函数创建了水平柱状图,然后使用plt.title()plt.xlabel()plt.ylabel()函数添加标题和标签。

总结

Matplotlib是一个强大的数据可视化工具,可以用于创建多种类型的柱状图以及其他图表。在本文中,我们演示了如何创建基本柱状图、堆叠柱状图和水平柱状图,并提供了示例代码,希望这些示例有助于你更好地使用Matplotlib进行数据可视化。

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

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

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

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

相关文章

【论文阅读】Speech Driven Video Editing via an Audio-Conditioned Diffusion Model

DiffusionVideoEditing:基于音频条件扩散模型的语音驱动视频编辑 code:GitHub - DanBigioi/DiffusionVideoEditing: Official project repo for paper "Speech Driven Video Editing via an Audio-Conditioned Diffusion Model" paper&#…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

软件测试|如何使用selenium处理iframe富文本输入框

简介 在网页开发中,富文本框是常见的元素,用于输入富文本内容,如富文本编辑器或邮件编辑器。如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框,可能会遇到一些挑战。本文将详细介绍如何使用Python和Selenium来向…

GoZero微服务个人探究之路(零)个人对微服务产生原因的思考,对前三篇的补充

为什么产生了微服务架构--必要性 这里我觉得看GoZero作者写的博文就可以有很好的体会 具体的,他画了这一张图(以电商后台系统为例子) 所以,我个人产生了如下思考 1.业务逻辑越来越复杂,层层嵌套,分解成微…

基于SSM的驾校信息管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

快速前端开发02-CSS快速入门

CSS快速入门 1.CSS案例1.1 内容回顾1.2 案例:二级菜单1.2.1 划分区域1.2.2 搭建骨架1.2.3 Logo区域1.2.4 菜单部分 1.3 案例:顶部菜单 二级菜单小结 1.4 案例:推荐区域1.4.1 划分区域1.4.2 搭建骨架1.4.3 案例的实现小结 2. CSS知识点2.1 ho…

Puppeteer让你网页操作更简单(1)屏幕截图

网页自动化设计爬虫工具 中就使用了Puppeteer进行对网页自动化处理,今天就来看看它是什么东西! 我们将学习什么? 在本教程中,您将学习如何使用JavaScript自动化和抓取 web。 为此,我们将使用Puppeteer。 Puppeteer是一个Node库API,允许我们控制无头Ch…

修改和调试 onnx 模型

1. onnx 底层实现原理 1.1 onnx 的存储格式 ONNX 在底层是用 Protobuf 定义的。Protobuf,全称 Protocol Buffer,是 Google 提出的一套表示和序列化数据的机制。使用 Protobuf 时,用户需要先写一份数据定义文件,再根据这份定义文…

最新情侣飞行棋源码完全解析+搭建教程:让爱情在游戏中升温!

游戏玩法 摇筛子自动走棋:再也不用手动掷骰子,轻轻一点,棋子自动前进。让游戏更加轻松愉快。任务挑战:每个格子都藏有不同的任务。这些任务既有趣又挑战性,需要你们共同思考、协作完成。当然,你们也可以选…

URL编码_解码详解

当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。 安全字符:指的是没有特殊用途或者特殊意义的字符。 URL基本组成 …

linux终端查看文件

ls 命令:ls 命令用于列出当前目录下的文件和子目录。默认情况下,它以字母顺序列出文件和目录的名称。例如,要列出当前目录下的所有文件和目录,可以运行以下命令: ls ls -l 命令:ls -l 命令以长格式显示文件…

S-DES加密算法的分析与代码实现(C语言)

目录 基本概念 打印函数 子密钥生成 初始化必要数组 获取初始密钥k 获取初始密钥k的十个二进制位 获取PC-1 转换字符数组至整型数组 利用PC-1改变数组K中元素的排列顺序 拆分元素顺序改变后的数组K 拆分后数组元素向左循环位移 将左移后的数组合并 获取PC-2 获取…

矩阵行列式的四大应用

目录 一. 介绍 二. 行列式的基本性质 2.1 单位阵的行列式 2.2 交换行位置的行列式 三. 矩阵求逆与行列式 四. 体积与行列式 五. 矩阵主元与行列式 六. 解方程与矩阵行列式 七. 小结 一. 介绍 行列式可以反应矩阵的很多性质,比如可以求矩阵的逆&#xff0c…

vue el-table 多选框回填

主要代码: //选中列,所有列,表名toggleSelection(selectRows, totalRows, tablename) {this.$refs.table.clearSelection();if (selectRows.length > 0) {this.$nextTick(() > {selectRows.forEach(item > {totalRows.forEach(item1 > {if (…

ucloud轻量云(wordpress)配置ssl

ucloud 轻量云(wordpress)配置ssl 1、上传ssl证书到/usr/local/software/apache/conf,这里的文件名和内容与ucloud控制台下载下来的文件名和内容保持一致 2、修改httpd.conf文件 vim /usr/local/software/apache/conf/httpd.conf 找到下面两行,去掉注…

【极光系列】springboot集成redis

【极光系列】springboot集成redis tips:主要用于快速搭建环境以及部署项目入门 gitee地址 直接下载源码可用 https://gitee.com/shawsongyue/aurora.git模块:aurora_rediswindow安装redis安装步骤 1.下载资源包 直接下载解压:https://pa…

【深入剖析Java】「重塑技术功底」攻破Java技术盲点之剖析注解技术的实现原理和开发指南

攻破Java技术盲点之剖析注解技术的实现原理和开发指南 什么是Annotation注解Annotation的定义Annotation的作用Annotation不会影响程序代码的执行什么是metadata(元数据)Annotation和Annotation类型AnnotationAnnotation类型注解的分类(参数个…

C++|29.纯虚函数/接口(待完成)

纯虚函数是一种特殊的虚函数。 普通的虚函数允许子类的同名函数对其进行重写,同时普通的虚函数本身是可以单独进行使用的。 而纯虚函数是一个空壳,强制要求所派生的类在继承的过程中必要将该虚函数进行实现。 如上图,纯虚函数只需要在vir…

汇编和c++初学,c++字符串加整型,导致的字符串偏移

从汇编角度分析"helloworld"1 “helloworld”1对应 mov dword ptr [a],1 mov eax,dword ptr [a] add eax,offset string "helloworld" (03CCCBCh)eax地址偏移加了1, lea ecx,[test]最终取的内存偏移地址&#xf…

解决vscode中导入的vue项目tsconfig.json文件首行标红问题

问题描述 vscode中导入的vue项目tsconfig.json文件标红,文件中第一行 { 处标红 问题分析 项目中自定义的tsconfig.json文件与vscode本身会自动进行JavaScript的语义检查发生冲突,而tsconfig.json文件无法覆盖vscode本身的javascript检查,故…