python 画条形图(柱状图)

news2024/11/26 16:45:02

目录

前言

基础介绍

月度开支的条形图


前言

条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。

当使用 Python 画条形图时,通常会使用 Matplotlib 库。Matplotlib 是一个广泛用于绘制图表和数据可视化的库,它提供了丰富的函数和方法来创建各种类型的图表,包括条形图。

Matplotlib 是一个用于绘制数据可视化图表的 Python 库。它提供了一个广泛的功能集,使得用户可以创建各种类型的图表,包括折线图、散点图、条形图、饼图、直方图等等。Matplotlib 可以轻松地将数据转换为可视化图表,帮助我们更好地理解和分析数据。

Matplotlib 库的主要特点和功能:

  1. 简单易用:Matplotlib 提供了直观的 API,使得创建基本图表变得简单而直接。
  2. 灵活性:Matplotlib 允许用户对图表进行高度定制,包括设置标题、标签、刻度线、线型、颜色、图例等等。
  3. 多种图表类型:Matplotlib 支持众多常见的图表类型,如折线图、散点图、条形图、饼图、直方图、盒图等等。
  4. 支持多种输出格式:Matplotlib 可以将图表保存为图片文件(如 PNG、JPG、SVG)、PDF 文件以及其他常见的图像格式。
  5. 与 NumPy 和 Pandas 集成:Matplotlib 与 NumPy 和 Pandas 库完美集成,使得数据的处理和可视化更加便捷。
  6. 支持 Jupyter Notebook:Matplotlib 可以在 Jupyter Notebook 环境中无缝使用,使得数据分析和可视化更加交互性和动态化。

基础介绍

import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [7, 13, 5, 17, 10]

# 创建条形图
plt.bar(categories, values, color='skyblue')

# 添加标题和标签
plt.title('Example Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')

# 显示条形图
plt.show()
  • 使用 Matplotlib 创建了一个简单的条形图,并对其进行了一些定制。
  • 首先,我们导入 Matplotlib 库,并使用 import matplotlib.pyplot as plt 将其重命名为 plt,以方便后续使用。
  • 定义了两个列表变量 categoriesvalues,分别表示条形图的类别和对应的数值。在这个例子中,类别包括 'A'、'B'、'C'、'D'、'E',对应的数值分别是 7、13、5、17、10。
  • 使用 plt.bar(categories, values, color='skyblue') 创建了一个条形图。plt.bar 函数的第一个参数是类别列表 categories,第二个参数是对应的数值列表 values,通过这两个参数可以指定条形图的类别和高度。我们还通过 color='skyblue' 参数设置了条形的颜色为天蓝色。
  • 使用 plt.title('Example Bar Chart') 添加了一个标题,将图表的标题设置为 'Example Bar Chart'。使用 plt.xlabel('Categories')plt.ylabel('Values') 分别添加了 x 轴和 y 轴的标签,将 x 轴标签设置为 'Categories',y 轴标签设置为 'Values'。
  • 使用 plt.show() 显示生成的条形图。这个函数会打开一个窗口显示图表,你可以对图表进行交互操作,如放大、保存为图片等。

效果图:

月度开支的条形图

import matplotlib.pyplot as plt

# 月份和开支数据
months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300]

# 创建条形图
plt.bar(months, expenses, color='skyblue')

# 添加标题和标签
plt.title('月度开支')
plt.xlabel('月份')
plt.ylabel('开支(元)')

# 旋转 x 轴标签
plt.xticks(rotation=45)

# 显示条形图
plt.show()
  • 用 Matplotlib 创建了一个月度开支的条形图,并对其进行了一些定制。
  • 导入了 Matplotlib 库,并使用 import matplotlib.pyplot as plt 将其重命名为 plt,以方便后续使用。
  • 定义了两个列表变量 monthsexpenses,分别表示月份和对应的开支数据。其中,months 包括了一年中的所有月份,而 expenses 则包含了每个月的开支金额。
  • 然后,我们使用 plt.bar(months, expenses, color='skyblue') 创建了一个条形图。plt.bar 函数的第一个参数是月份列表 months,第二个参数是对应的开支数据列表 expenses。我们还通过 color='skyblue' 参数设置了条形的颜色为天蓝色。
  • 使用 plt.title('月度开支') 添加了一个标题,将图表的标题设置为 '月度开支'。使用 plt.xlabel('月份')plt.ylabel('开支(元)') 分别添加了 x 轴和 y 轴的标签,将 x 轴标签设置为 '月份',y 轴标签设置为 '开支(元)'。
  • 还使用了 plt.xticks(rotation=45) 将 x 轴的标签进行了旋转,使得月份的文字能够更好地展示并避免重叠。
  • 使用 plt.show() 显示生成的条形图。这个函数会打开一个窗口显示图表,你可以对图表进行交互操作,如放大、保存为图片等。

效果图:

在这里我们看到没有显示中文,而是不知名的乱码,嘶需要进行代码修改,添加以下代码

 # 设置中文字体和禁用Unicode减号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

import matplotlib.pyplot as plt

# 设置中文字体和禁用Unicode减号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 月份和开支数据
months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300]

# 创建条形图
plt.bar(months, expenses, color='skyblue')

# 添加标题和标签
plt.title('月度开支')
plt.xlabel('月份')
plt.ylabel('开支(元)')

# 旋转 x 轴标签
plt.xticks(rotation=45)

# 显示条形图
plt.show()

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

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

相关文章

STM32 标准外设SPL库、硬件抽象层HAL库、低层LL库区别?

1、STM32 之一 HAL库、标准外设库、LL库_ZCShou的博客-CSDN博客_ll库(仔细阅读) 2、STM32标准外设库、 HAL库、LL库 - King先生 - 博客园 3、STM32 之 HAL库_戈 扬的博客(仔细阅读) 4、STM32 LL 为什么比 HAL 高效&#xff1…

通信:mqtt学习网址

看这个网址:讲的很详细,后面补实战例子 第一章 - MQTT介绍 MQTT协议中文版 (gitbooks.io)https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html

【Matlab算法】多维函数求解的基本概念

多维函数求解的基本概念 多维函数最优化问题最优化算法最优化问题的类型最优化算法的分类常用的多维函数求解方法结语 多维函数 多维函数是指定义在 R n \mathbb{R}^n Rn 上的函数,其中 n n n 是函数的维数。例如, f ( x , y ) x 2 y 2 f(x, y) x^…

DL Homework 10

习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时, 分析其可能存在梯度爆炸的原因并给出解决方法. 当然,因为我数学比较菜,我看了好半…

Vue3:表格单元格内容由:图标+具体内容 构成

一、背景 在Vue3项目中,想让单元格的内容是由 :图标具体内容组成的,类似以下效果: 二、图标 Element-Plus 可以在Element-Plus里面找是否有符合需求的图标iconfont 如果Element-Plus里面没有符合需求的,也可以在这…

掌握iText:轻松处理PDF文档-基础篇

关于iText iText是一个强大的PDF处理库,可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作,同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X,且iText5不是完全免费的,但是基础能力是免费使用的&…

MyBatis 四大核心组件之 StatementHandler 源码解析

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

【设计模式--创建型--建造者模式】

建造者模式 建造者模式概述结构结果优缺点使用场景 将上述案例改为链式调用结果 建造者模式 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构建(由Builder来负责)和装配(由Direct…

【HarmonyOS开发】拖拽动画的实现

动画的原理是在一个时间段内,多次改变UI外观,由于人眼会产生视觉暂留,所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧,对应一次屏幕刷新,而决定动画流畅度的一个重要指标就是帧率FPS(F…

[ 蓝桥杯Web真题 ]-冬奥大抽奖

目录 介绍 准备 目标 规定 思路 知识补充 解法参考 介绍 蓝桥云课庆冬奥需要举行一次抽奖活动,我们一起做一个页面提供给云课冬奥抽奖活动使用。 准备 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: ├──…

Qt设置类似于qq登录页面

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QWindow> #include <QIcon> #include <QLabel> #include <QMovie> #include <QLineEdit> #include <QPushButton>QT_BEGIN_NAMESPACE namespace Ui { class…

python:五种算法(DBO、WOA、GWO、PSO、GA)求解23个测试函数(python代码)

一、五种算法简介 1、蜣螂优化算法DBO 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、粒子群优化算法PSO 5、遗传算法GA 二、5种算法求解23个函数 &#xff08;1&#xff09;23个函数简介 参考文献&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary programming made…

RF射频干扰被动型红外传感器误判分析及整改事例

1.1 什么是红外传感 测量系统是以红外线为介质&#xff0c;探测可分成为光子和热探测器。 简洁原理就是利用产生的辐射与物质相互作用后呈现出来的物理效应就是它的基本原理。 1.2 红外按方式分类 &#xff08;1&#xff09;被动型红外&#xff1a;本身不会向外界辐射任何能量…

红队攻防实战之phpmyadmin-RCE集锦

世界上只有一种真正的英雄主义&#xff0c;那就是认清了生活的真相后&#xff0c;仍然热爱她 phpmyadmin远程代码执行漏洞 访问该页面&#xff0c;存在弱口令 爆破进入后发现该php版本以及phpmyadmin版本信息&#xff0c;该版本存在远程命令执行漏洞。 使用exp利用此漏洞&am…

建立个人学习观|地铁上的自习室

作者&#xff1a;向知 如果大家有机会来北京&#xff0c;可以来看看工作日早上八九点钟&#xff0c;15 号线从那座叫“顺义”的城市通向“望京”的地铁&#xff0c;你在那上面&#xff0c;能看到明明白白的&#xff0c;人们奔向梦想的模样。 一、地铁上的自习室 我在来北京之前…

RT-Thread学习笔记(六):RT_Thread系统死机日志定位

RT_Thread系统死机日志定位 一、RT_Thread系统死机日志定位二、Cortex-M3 / M4架构知识2.1 Cortex-M3 / M4架构概述2.2 寄存器用途 三、排查步骤 一、RT_Thread系统死机日志定位 RT-Thread 系统发生hardfault死机时&#xff0c;系统默认会打印出一系列寄存器状态帮助用户定位死…

[GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练

前言 OpenAI的创始人之一,大神Andrej Karpthy刚在微软Build 2023开发者大会上做了专题演讲:State of GPT(GPT的现状)。 他详细介绍了如何从GPT基础模型一直训练出ChatGPT这样的助手模型(assistant model)。作者不曾在其他公开视频里看过类似的内容,这或许是OpenAI官方…

大数据技术7:基于StarRocks统一OALP实时数仓

前言&#xff1a; 大家对StarRocks 的了解可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris &#xff0c;而 StarRocks 实际上原名叫做 Doris DB &#xff0c;他相当于是一个加强版的也就是一个 Doris ,也就是说 Doris 所有的功能 StarRocks 都是有的&a…

2023/12/10总结

学习 WebSocket 一共四种方法&#xff0c;传递数据是要通过JSON格式传递 前端 onopen 在连接时 onmessage 收到消息时 通常携带参数 event &#xff0c;event.data 是消息 onerror 发生错误时 onclose 关闭连接时 发送消息 需要安装 vue-native-websocket 包 pnpm i vue-n…

【HarmonyOS开发】控件开发过程中,知识点记录

1、问题记录及解决方案 1.1 资源&#xff08;Icon&i18n&#xff09;问题 控件&#xff1a;只有一个JS文件&#xff0c;不会将任何资源型文件&#xff08;图片、字体、默认文字等&#xff09;打包到SO中。因此&#xff0c;当我们开发控件时&#xff0c;需要将需要使用到的资…