软件测试|使用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进行数据可视化。

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

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

相关推荐
可乐鸡翅yeah_5 分钟前
hls.js 缓冲区参数 maxBufferLength、maxBufferSize 通俗讲解与业务调参
开发语言·javascript·ios·音视频·safari·m3u8
Wang's Blog7 分钟前
Java框架 SpringCloud 快速入门: 全局过滤器(GlobalFilter)自定义鉴权
java·开发语言·spring cloud
白山编程大哥10 分钟前
C语言篇:可变参数函数
c语言·开发语言
(Charon)12 分钟前
【C++面试】程序崩溃如何定位:从Segmentation fault到GDB、Core Dump与ASan
开发语言·c++
“AI国潮设计-小江”20 分钟前
《Python+SDXL实战:用ControlNet精准控制“英歌舞戚风蛋糕”质感,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
1024奇点25 分钟前
【仓颉语言入门 · 第26课】
开发语言·ide·开源
jayhgq27 分钟前
新一代Python包与项目管理工具——UV
开发语言·python·uv
xixiaoyunya27 分钟前
CPU 100% 本身不是问题,它是一个症状
开发语言·php
for_ever_love__32 分钟前
文件与异常——open、json、with 与 try-except 的工程写法
python·异常处理·文件操作·大模型开发
XLYcmy34 分钟前
PDF 论文处理器 — 技术报告文档
数据库·python·网络安全·pdf·embedding·dify·rag