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

简介

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

创建基本柱状图

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

python 复制代码
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()函数显示图表。

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

创建堆叠柱状图

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

python 复制代码
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()函数添加图例,以区分不同产品的销售额。

创建水平柱状图

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

python 复制代码
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进行数据可视化。

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

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

相关推荐
丑八怪大丑11 小时前
JDK8-17新特性
java·开发语言
书源丶11 小时前
三十五、Java 泛型——类型安全的「万能模板」
java·开发语言·安全
twc82912 小时前
全链路压测的环境复杂性:网络架构、应用架构与性能影响因素全解析
网络·软件测试·架构·性能测试·全链路压测
EF@蛐蛐堂12 小时前
【js】浏览器滚动条优化组件OverlayScrollbars
开发语言·javascript·ecmascript
2301_8125396712 小时前
Golang怎么实现网页爬虫抓取数据_Golang如何用colly框架快速构建爬虫采集程序【教程】
jvm·数据库·python
xcbrand12 小时前
政府事业机构品牌策划公司哪家可靠
大数据·人工智能·python
郝学胜-神的一滴12 小时前
跨平台动态库与头文件:从原理到命名的深度解析
linux·c++·程序人生·unix·cmake
代码中介商12 小时前
C++ 仿函数(Functor)深度解析:从基础到应用
开发语言·c++
小杍随笔12 小时前
Rust桌面GUI框架:性能优化与实战避坑指南
开发语言·性能优化·rust
二哈赛车手12 小时前
新人笔记---项目中简易版的RAG检索后评测指标(@Recall ,Mrr..)实现
java·开发语言·笔记·spring·ai