【plt.bar绘制条形图or柱状图】:从入门到精通,只需一篇文章!【Matplotlib可视化】

【📊plt.bar绘制条形图】:从入门到精通,只需一篇文章!【Matplotlib】

在这里插入图片描述

利用Matplotlib进行数据可视化示例


在这里插入图片描述

🌵文章目录🌵

  • 🔍 一、初识plt.bar:条形图的基本概念
  • 💡 二、plt.bar进阶:条形图的定制与优化
    • 📊 1. 定制与优化条形图
    • 💫 2. 交互式条形图
  • 🔥 三、总结与展望:plt.bar的无限可能
  • 🌳 四、 结尾

  大家好!👋 欢迎来到我的博客,今天我们将一起探索如何使用Matplotlib库中的plt.bar()函数绘制条形图。条形图是一种常见的数据可视化工具,用于展示不同类别的数据之间的比较。通过本文,你将从入门到精通,掌握使用plt.bar()绘制条形图的技巧!🚀

🔍 一、初识plt.bar:条形图的基本概念

  首先,让我们来了解一下条形图的基本概念。条形图是一种用矩形条表示数据的图表,矩形条的长度或高度表示数据的数值。在Matplotlib中,我们可以使用plt.bar()函数来绘制条形图。这个函数的基本语法非常简单,只需要指定x轴的位置和y轴的数值即可。

  下面是一个简单的示例代码,展示如何使用plt.bar()绘制基本的条形图:

import matplotlib.pyplot as plt# 数据准备
categories = ['Apple', 'Banana', 'Orange']
values = [10, 15, 7]# 创建条形图
plt.bar(categories, values)# 设置图表标题和坐标轴标签
plt.title('Fruit Consumption')
plt.xlabel('Fruits')
plt.ylabel('Quantity')# 显示图表
plt.show()

运行以上代码,你将看到一个简单的条形图,展示了三种水果的消费量:

在这里插入图片描述

Fig.1 使用plt.bar绘制基本的条形图

💡 二、plt.bar进阶:条形图的定制与优化

📊 1. 定制与优化条形图

  除了基本的条形图绘制外,我们还可以使用一些进阶技巧来定制和优化条形图的外观和效果。下面是一些常用的定制选项:

  • 调整条形的宽度和间距
  • 添加数据标签和注释
  • 调整坐标轴的范围和刻度
  • 设置图表的网格线和样式

下面是一个示例代码,展示如何使用这些进阶技巧定制条形图:

import matplotlib.pyplot as plt# 数据准备
categories = ['Apple', 'Banana', 'Orange', 'Watermelon', 'Grape']
values = [23, 15, 36, 28, 33]
colors = ['red', 'yellow', 'orange', 'green', 'purple']# 设置条形的宽度和间距
bar_width = 0.4
index = range(len(categories))# 创建条形图,设置颜色和标签
for i, category in enumerate(categories):plt.bar(i, values[i], bar_width, color=colors[i], label=category, edgecolor='black')# 添加数据标签
for i, v in enumerate(values):plt.text(i, v + 0.5, str(v), ha='center', va='bottom')# 设置坐标轴的刻度和标签
plt.xlabel('Categories')
plt.ylabel('Sales Quantity')
plt.title('Fruit Sales by Category')
plt.xticks([i for i in index], categories)  # 将刻度标签设置在条形的中心# 添加图例,传入类别名称列表
plt.legend(categories)# 设置网格线
plt.grid(axis='y', alpha=0.5)# 设置坐标轴的范围
plt.xlim([-bar_width / 2, len(categories) - (1 - bar_width / 2)])
plt.ylim(0, max(values) + 10)  # 为y轴设置合理的范围,留出一些空间# 显示图表
plt.show()

🎉 效果展示

在这里插入图片描述

Fig.2 使用plt.bar定制条形图

  这段代码使用Python的Matplotlib库绘制了一个条形图,展示了不同水果类别🍎🍌🍇🍉🍊的销售数量。通过为每个水果类别分配独特的颜色,并在条形上方添加数据标签,用户能够直观地看到各类水果的销售情况。

  通过这段代码,我们不仅能够看到每个水果类别的销售数量,还能感受到其视觉上的美感。这使得数据的展示更加直观和易于理解。

💫 2. 交互式条形图

除了静态的条形图,我们还可以使用Matplotlib创建交互式条形图,使图表更具吸引力和互动性。Matplotlib支持事件处理,我们可以通过添加回调函数来响应用户的交互操作。

下面是一个示例代码,展示如何创建一个简单的交互式条形图:

# 导入matplotlib.pyplot模块,通常用于绘图
import matplotlib.pyplot as plt
# 导入matplotlib模块,这是一个用于绘制2D图形的库
import matplotlib# 设置matplotlib使用TkAgg作为其后端,TkAgg是一个基于Tkinter的GUI后端
matplotlib.use('TkAgg')# 数据准备
# 定义一个列表categories,用于存储水果的名称
categories = ['Apple', 'Strawberry', 'Watermelon', 'Pineapple', 'Peach']
# 定义一个列表values,用于存储每种水果对应的值
values = [23, 46, 69, 56, 45]# 创建条形图
# 创建一个新的图形窗口和一个坐标轴
fig, ax = plt.subplots()
# 在坐标轴上绘制条形图,其中categories是x轴的数据,values是y轴的数据
# 设置条形图的颜色为skyblue,边缘颜色为black
bars = ax.bar(categories, values, color='skyblue', edgecolor='black')# 定义一个函数,用于处理鼠标点击事件
def onclick(event):# 遍历每一个条形for bar in bars:# 检查鼠标点击的位置是否在条形内部if bar.contains(event)[0]:# 如果是,则获取条形的位置和高度# 获取条形中心的x坐标x = bar.get_x() + bar.get_width() / 2# 获取条形的高度height = bar.get_height()# 打印出被点击的条形的类别和值print(f"Clicked on {categories[bars.index(bar)]} with a value of {height}")# 找到一个条形后,退出循环break# 将鼠标点击事件连接到处理函数onclick# 当用户点击图形窗口时,会触发onclick函数
fig.canvas.mpl_connect('button_press_event', onclick)# 设置图表的标题和坐标轴的标签
# 设置标题为'Bar Chart with Click Events'
ax.set_title('Bar Chart with Click Events')
# 设置x轴的标签为'Category'
ax.set_xlabel('Category')
# 设置y轴的标签为'Value'
ax.set_ylabel('Value')# 显示图表
# 这将打开一个图形窗口,显示创建的条形图
plt.show()

以上代码的功能是创建一个带有交互性的条形图使用户能够通过点击来查看每个条形的详细信息。首先,导入了matplotlib.pyplotmatplotlib模块,它们是Python中用于绘制2D图形的强大库。📈 接着,设置了matplotlib使用TkAgg作为其后端,以便在Tkinter窗口中展示图形。然后,定义了categoriesvalues两个列表,分别存储水果名称和对应的值。这些值将作为条形图的y轴数据。使用plt.subplots()创建了一个新的图形窗口和一个坐标轴,并在坐标轴上绘制了条形图,设置了颜色为天空蓝,边缘为黑色。💙

为了增加交互性,定义了一个onclick函数,用于处理鼠标点击事件。当用户点击图形窗口时,该函数会遍历每个条形,检查点击位置是否在条形内部。如果是,则获取该条形的位置和高度,并打印出对应的水果类别和值。通过fig.canvas.mpl_connect将鼠标点击事件与onclick函数连接起来,实现了点击交互功能。🖱️

最后,设置了图表的标题、x轴和y轴的标签,并使用plt.show()显示图表。这将打开一个图形窗口,展示创建的条形图。用户可以通过点击条形来查看其对应的水果类别和值,从而增强了图表的可读性和互动性。🌈

🎉 效果展示

在这里插入图片描述

Fig.3 使用plt.bar定制交互式条形图

当依次点击上图的五个条形时,代码会在运行窗口输出对应的水果类别和值:

Clicked on Apple with a value of 23
Clicked on Strawberry with a value of 46
Clicked on Watermelon with a value of 69
Clicked on Pineapple with a value of 56
Clicked on Peach with a value of 45

🔥 三、总结与展望:plt.bar的无限可能


通过本文的介绍,你已经掌握了使用Matplotlib库中的plt.bar()函数绘制条形图的基本方法和技巧。从入门到精通,只需一篇文章!现在,你可以自信地应对各种条形图的绘制需求,并展示你的数据可视化能力。

然而,条形图只是数据可视化领域中的冰山一角。Matplotlib库还提供了许多其他类型的图表,如折线图、散点图、饼图等。通过学习和掌握这些图表的绘制方法,你可以更加全面地展示和分析数据。此外,你还可以探索其他数据可视化库,如Seaborn、Plotly等,它们提供了更多的功能和样式选择。

在未来的学习和实践中,不断尝试新的图表类型和可视化库,挑战自己的数据可视化能力。相信你会在数据可视化的道路上越走越远,创造出更多令人惊叹的可视化作品!🚀🚀🚀

希望本文对你有所帮助!如果你有任何问题或建议,请随时联系我。感谢你的阅读和支持!🙏🙏🙏

记得点赞👍、收藏🌟和分享🔄哦!让更多的人了解和学习数据可视化的魅力!🎉🎉🎉

🌳 四、 结尾

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven - Plugins报错的正确解决之道

背景: 正确解决之道: 在自己本地Maven的安装目录中找到自己的仓库地址目录:直接搜索自己报错的插件文件,把它们删除,如图: 接着回到IDEA点击Maven刷新按钮重新加载即可:已解决 反例&#xff1…

【机构vip教程】Appium自动化(2):Python+Appium环境搭建

windows下搭建pythonappium环境 搭建过程步骤如下: 1、安装jdk并配置好环境变量(jdk版本1.8以上) 2、安装android-sdk并配置好环境变量;具体步骤见:https://www.cnblogs.com/YouJeffrey/p/15243705.html 3、安装安…

浅谈js事件机制

事件是什么?事件模型? 原始事件模型(DOM0级) HTML代码中指定属性值:在js代码中指定属性值:优点:缺点: IE 事件模型DOM2事件模型 对事件循环的理解 宏任务(Macrotasks&…

Three.JS教程5 threejs中的材质

Three.JS教程5 threejs中的材质 一、什么是Three.js材质?二、Three.js的材质类型1. 材质类型2. 材质的共用属性(1).alphaHash : Boolean(2).alphaTest : Float(3).alphaToCoverage : Boolean&am…

白酒:制曲工艺的微生物多样性及其作用

在云仓酒庄豪迈白酒的制曲工艺中,微生物多样性是一个关键要素。曲是白酒生产中的重要配料,它由小麦、麸皮等原料制成,经过微生物的发酵和生长而形成。微生物的多样性和相互作用对曲的品质和白酒的口感具有重要影响。 首先,微生物多…

【后端高频面试题--设计模式上篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 往期精彩内容 【后端高频面试题–设计模式上篇】 【后端高频面试题–设计模式下篇】 【后端高频…

C++面向对象程序设计-北京大学-郭炜【课程笔记(三)】

C面向对象程序设计-北京大学-郭炜【课程笔记(三)】 1、构造函数(constructor)1.1、基本概念 2、赋值构造函数2.1、基本概念2.1、复制构造函数起作用的三种情况2.2、常引用参数的使用 3、类型转换构造函数3.1、什么事类型转换构造函…

深入解析Android AIDL:实现跨进程通信的利器

深入解析Android AIDL:实现跨进程通信的利器 1. 介绍Android AIDL Android Interface Definition Language (AIDL) 是一种Android系统中的跨进程通信机制。AIDL允许一个应用程序的组件与另一个应用程序的组件通信,并在两者之间传输数据。 AIDL的主要作…

【机构vip教程】​python(1):python正则表达式匹配指定的字符开头和指定的字符结束

一&#xff0c;使用python的re.findall函数&#xff0c;匹配指定的字符开头和指定的字符结束 代码示例&#xff1a; 1 import re 2 # re.findall函数;匹配指定的字符串开头和指定的字符串结尾(前后不包含指定的字符串) 3 str01 hello word 4 str02 re.findall((?<e).*?…

[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令

目录 一、rtconfig.h 1.1 概述 1.2 软硬件资源配置 1.3 功能模块选择 1.4 内核配置详解 1.5 调度器配置 1.6 硬件设备驱动配置 1.7 网络配置 1.8 调试配置 二、menuconfig 2.1 概述 2.2 主要功能 三、RT Thread配置 VS Linux配置 一、rtconfig.h 1.1 概述 rtco…

Shiro-03-shiro 核心概念 Subject,SecurityManager 和 Realms

核心概念&#xff1a;Subject&#xff0c;SecurityManager 和 Realms Shiro的体系结构具有三个主要概念-主题&#xff08;Subject&#xff09;&#xff0c;安全管理器(SecurityManager)和领域&#xff08;Realms&#xff09;。 Subject 在保护应用程序安全时&#xff0c;可能…

阿里云香港轻量应用服务器怎么样,建站速度快吗?

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品&#xff0c;中国电信CN2高速网络高质量、大规格BGP带宽&#xff0c;运营商精品公网直连中国内地&#xff0c;时延更低&#xff0c;优化海外回中国内地流量的公网线路&#xff0c;可以提高国际业务访问质量。阿里云服务…

[java基础揉碎]类与对象

目录 类与对象的引出: 类与对象的概述: 类与对象在内存中的布局: 属性的注意细节: 类与对象在内存中创建的过程: 类与对象的引出: 例如这样一个问题: 如果用单独变量来解决, 就会有一个问题, 不利于数据的管理, 将所有猫的信息都给拆解了: 如果用数组来解决, 则会有 1)数…

ClickHouse--11--ClickHouse API操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.Java 读写 ClickHouse API1.1 首先需要加入 maven 依赖1.2 Java 读取 ClickHouse 集群表数据JDBC--01--简介 ClickHouse java代码 1.3 Java 向 ClickHouse 表中写…

计算机设计大赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

Mysql5.6忘记密码,如何找回(windows)

mysql5.6安装 第一步&#xff1a;关闭正在运行的数据库服务 net stop mysql第二步&#xff1a;在my.ini文件当中的[mysqld] 任意一个位置放入 skip-grant-tables第三步&#xff1a;启动mysql服务 net start mysql第四步&#xff1a;服务启动成功后就可以登录了&#xff0c;…

举个栗子!Tableau 技巧(265):灵活对比文本表的行数据

通过文本表查看数据时&#xff0c;我们经常需要将某一行数据与其他行进行对比&#xff0c;如何能更灵活更直观的对比分析各行数据情况呢&#xff1f; 可以试试这个方法&#xff01;如下示例&#xff1a;点击某明细行时&#xff0c;该明细行会自动置顶&#xff0c;且其它行会新…

Linux系统:iptables 防火墙

目录 一、安全技术与防火墙 1、安全技术概念 2、防火墙 2.1 防火墙概念 2.2 防火墙分类 2.3 linux的防火墙Netfilter 2.4 防火墙工具介绍 2.5 netfilter 和 iptables 的关系 二、iptables 1、概念 2、五表五链 2.1 五个table表 2.2 五个chain链 2.3 内核中数据包…

ClickHouse--06--其他扩展MergeTree系列表引擎

其他扩展MergeTree系列 MergeTree 系列表引擎 --种类 MergeTree 系 列 表 引 擎 包 含 &#xff1a; MergeTreeReplacingMergeTreeSummingMergeTree&#xff08;汇总求和功能&#xff09;AggregatingMergeTree&#xff08;聚合功能&#xff09;CollapsingMergeTree&#xff08…

- 项目落地 - 《选择项目工具的方法论》

本文属于专栏《构建工业级QPS百万级服务》 提纲&#xff1a; 选择大概率能完成业务目标的工具选择最适合的工具制作最适合的工具 本文所说的项目工具&#xff0c;泛指业务软件开发&#xff0c;所依赖的第三方提供的成熟的资源。包括但不限于开发语言、编辑工具、编译工具、三方…