笔记:编写程序,绘制一个展示支付宝月账单报告的饼图

文章目录

  • 前言
  • 一、饼图是什么?
  • 二、编写代码
  • 总结


前言

笔记:编写程序,绘制一个展示支付宝月账单报告的饼图
(1) 导入 matplotlib.pyplot 模块;
(2) 准备饼图所需的数据;
(3) 绘制饼图;
(4) 设置饼图的标题为“支付宝月账单报告”;
(5) 为饼图添加图例。
通过绘制饼图展示支付宝月账单的报告。支付宝是一款常用的手机支付应用,每月的账单记录了用户在该应用上的消费情况。通过本程序,用户可以清晰地了解各种消费类别在月度支出中的比例,并且可以直观地比较各项支出所占比例。

为了实现这一目的,我们将采取以下步骤:首先,导入 matplotlib.pyplot 模块,以便使用其中的绘图功能。然后,准备饼图所需的数据,即支付宝账单中不同消费类别的支出金额。接下来,我们将使用这些数据绘制饼图,并设置其标题为“支付宝月账单报告”。最后,我们将为饼图添加图例,以便用户可以清晰地识别各个消费类别。

通过这个程序,用户可以直观地了解自己在支付宝上的消费结构,从而更好地控制和规划个人财务。

一、饼图是什么?

饼图是一种常用的数据可视化工具,用于展示数据中各部分的相对比例。它通常呈圆形,将整个数据集表示为一个圆圈,而每个数据类别则表示为圆形的一部分,即“饼片”。

饼图最常用于显示数据的占比关系,特别适用于展示数据的相对大小或组成结构。通过观察饼图,用户可以直观地了解不同类别在整体数据中的比例,并比较各个类别之间的相对大小。

在饼图中,每个数据类别的大小通常以扇形的方式表示,扇形的大小与该类别在整个数据集中所占比例成正比。通常,饼图会包括图例,用于标识每个扇形所代表的数据类别。

总之,饼图是一种简单而直观的图表类型,适用于展示数据的相对比例和组成结构。

二、编写代码

代码如下(示例):

import matplotlib.pyplot as plt  # 导入绘图库matplotlib

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文显示字体为SimHei
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 支付类型
kinds = ['购物', '人情往来', '餐饮美食', '通信物流', '生活日用', '交通出行', '休闲娱乐', '其他']

# 每种支付类型的金额占比
money_scale = [800 / 3000, 100 / 3000, 1000 / 3000, 200 / 3000,
               300 / 3000, 200 / 3000, 200 / 3000, 200 / 3000]

# 设置偏移量
dev_position = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]

# 绘制饼图
plt.pie(money_scale, autopct='%3.1f%%', shadow=True,
        explode=dev_position, startangle=90)

# 添加标题
plt.title('支付宝月账单报告')

# 添加图例
plt.legend(kinds, loc='upper right', bbox_to_anchor=[1.3, 1.1])

# 显示图形
plt.show()

代码使用了 matplotlib.pyplot 库来绘制饼图,实现了展示支付宝月账单报告的功能。下面是对代码的详细分析:

  1. 导入绘图库:

    import matplotlib.pyplot as plt
    

    这行代码导入了 matplotlib.pyplot 库,用于绘制图形。

  2. 设置中文显示:

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    

    这里设置了中文显示字体为宋体(SimHei),并解决了负号显示问题。

  3. 准备数据:

    kinds = ['购物', '人情往来', '餐饮美食', '通信物流', '生活日用', '交通出行', '休闲娱乐', '其他']
    money_scale = [800 / 3000, 100 / 3000, 1000 / 3000, 200 / 3000,
                   300 / 3000, 200 / 3000, 200 / 3000, 200 / 3000]
    

    kinds 列表存储了支付类型,money_scale 列表存储了每种支付类型的金额占比,这些数据是示例中提供的。

  4. 设置偏移量:

    dev_position = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
    

    dev_position 列表存储了每个扇形的偏移量,用于在绘制饼图时产生分离的效果。

  5. 绘制饼图:

    plt.pie(money_scale, autopct='%3.1f%%', shadow=True, explode=dev_position, startangle=90)
    

    这行代码使用 plt.pie() 函数绘制饼图,参数包括金额占比 money_scale、自动添加百分比标签 autopct='%3.1f%%'、阴影效果 shadow=True、偏移量 explode=dev_position 和起始角度 startangle=90

  6. 设置标题:

    plt.title('支付宝月账单报告')
    

    使用 plt.title() 函数设置饼图的标题为“支付宝月账单报告”。

  7. 添加图例:

    plt.legend(kinds, loc='upper right', bbox_to_anchor=[1.3, 1.1])
    

    使用 plt.legend() 函数添加图例,参数包括支付类型列表 kinds、图例位置 loc='upper right' 和图例框的位置 [1.3, 1.1]

  8. 显示图形:

    plt.show()
    

    这行代码显示了绘制的饼图。

这样,整个程序就完成了绘制支付宝月账单报告的饼图,并且包含了标题和图例。


效果图如下:
在这里插入图片描述


总结

通过本文介绍了如何使用 Python 中的 matplotlib.pyplot 库来绘制饼图,展示支付宝月账单报告。首先,我们了解了饼图的基本概念和用途,即用于展示数据中各部分的相对比例。接着,我们按照步骤进行了代码编写:

  1. 导入绘图库 matplotlib.pyplot
  2. 设置中文显示字体和解决负号显示问题。
  3. 准备饼图所需的数据,包括支付类型和每种支付类型的金额占比。
  4. 设置偏移量,以便在绘制饼图时产生分离的效果。
  5. 使用 plt.pie() 函数绘制饼图,并设置自动添加百分比标签、阴影效果、偏移量和起始角度。
  6. 设置饼图的标题为“支付宝月账单报告”。
  7. 添加图例,以便用户可以清晰地识别各个消费类别。
  8. 最后,显示绘制的饼图。

通过这个程序,用户可以直观地了解自己在支付宝上的消费结构,从而更好地控制和规划个人财务。饼图的直观性使得数据分析变得更加简单明了。

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

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

相关文章

进程状态与优先级

Linux内核源代码: 首先我们需要明确一点,Linux操作系统和操作系统的进程状态是不同的 上图大概标识了各个状态对应在操作系统的状态 普通进程 R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在…

【论文笔记 | 异步联邦】FedSA

FedSA:一种处理 non-IID 数据 的 过时感知 异步联邦算法 1. 论文信息 FedSA:A staleness-aware asynchronous Federated Learning algorithm with non-IID data,Future Generation Computer Systems,2021.7,ccfc 是…

「网络流 24 题」太空飞行计划 【最大权值闭合图】

「网络流 24 题」太空飞行计划 题意 有 n n n 个实验 和 m m m 个器械,每个实验都需要若干个指定的器械才能进行 实验 i i i 的盈利为 p i p_i pi​, 器械 j j j 的花销为 c j c_j cj​ 找出纯利润最大的实验计划 思路 这是非常典型的最大权值…

STM32 各外设GPIO配置

高级定时器TIM1/TIM8 通用定时器TIM2/3/4/5 USART SPI I2S I2C接口 BxCAN SDIO ADC/DAC 其它I/O功能

如何用Jmeter压测

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 技术分享 如何vscode中刷力扣…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周,美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务,即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月(27…

每日一题 非对称之美

题目描述 I-非对称之美_牛客小白月赛31 (nowcoder.com) 题目解析 贪心算法的应用 考虑以下情况:当字符串中的字符全部相同时,即使删除任意一个字符,也无法使其成为一个回文串。这种情况下,我们无法直接套用上述的逐步比较方法。…

树莓派4b红外检测

1.红外检测连接图 2.红外检测工作原理 红外传感器的工作原理类似于物体检测传感器。该传感器包括一个红外LED和一个红外光电二极管,因此通过将这两者结合起来,可以形成一个光耦合器。 红外LED是一种发射红外辐射的发射器。该LED看起来与标准LED相似&a…

一、手写一个uart协议——rs232

先了解一下关于uart和rs232的基础知识 文章目录 一、RS232的回环测试1.1模块整体架构1.2 rx模块设计1.2.1 波形设计1.2.2代码实现与tb1.2.4 仿真 1.3 tx模块设计1.3.1 波形设计1.3.2 代码实现与tb1.3.4 顶层设计1.3.3 仿真 本篇内容: 一、RS232的回环测试 上位机…

安卓surfaceview的使用方式

1. 什么是surfaceview surfaceview内部机制和外部层次结构 在安卓开发中,我们经常会遇到一些需要高性能、高帧率、高画质的应用场景,例如视频播放、游戏开发、相机预览等。这些场景中,我们需要直接操作图像数据,并且实时地显示到…

大模型微调实战之强化学习 贝尔曼方程及价值函数(五)

大模型微调实战之强化学习 贝尔曼方程及价值函数(五) 现在, 看一下状态-动作值函数的示意图: 这个图表示假设首先采取一些行动(a)。因此,由于动作(a),代理可能会被环境转换到这些状…

不止于量子!“光与热”两大架构重塑计算前沿

在探索超越传统计算机性能的途径中,量子计算通常被视为一种前沿技术。然而,它并非解决所有计算挑战的唯一方案。事实上,最近有两家公司推出了基于独特物理原理的计算设备,这些设备专门针对特定应用设计,据称在处理特定…

Python数据分析之绘制相关性热力图的完整教程

前言 文章将介绍如何使用Python中的Pandas和Seaborn库来读取数据、计算相关系数矩阵,并绘制出直观、易于理解的热力图。我们将逐步介绍代码的编写和执行过程,并提供详细的解释和示例,以便读者能够轻松地跟随和理解。 大家记得需要准备以下条…

家用洗地机应该怎么选?哪个牌子好?市场上主流洗地机品牌推荐

洗地机的出现,让越来越多的家庭享受清洁的过程,给人们腾出来更多的时间陪伴家人和休息。但是在选购一台洗地机前,大家多多少少肯定有些疑问,洗地机到底实不实用?好不好用?能扫干净吗?还有哪些好…

重置密码之后无法ssh登录

背景描述 我这边有个服务器S,我从ServerA可以ssh上去,但是我从堡垒机B无法ssh上去;一开始以为是密码问题,手动重置密码,但是依然无法登录进去;一直提示密码错误;改了好几次密码都不行 问题原因…

OpenCV4.8 VS2019 MFC编程出现的诡异现象

OpenCV4.8及OpenCV4.4 VS2019MFC编程在调用imred()函数时,debug X64试运行没问题。 release X64试运行时出现下面错误。 void CEasyPictureDlg::OnBnClickedOpen() {CFileDialog fdlg(TRUE, NULL, 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMP…

数据结构——实现通讯录(附源码)

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程

🐯 Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 📸 文章目录 🐯 Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 📸摘要引言正文📘 OpenCV库概述🚀 …

手动下载huggingface数据集到本地加载

需要使用huggingface上的数据集时一般如下加载: import datasets dataset datasets.load_dataset("dataset_name")但是经常会报连接错误等问题,所以我们可以去huggingface官网下载好数据集,然后直接用数据集路径替换dataset_name…

Springboot+Vue项目-基于Java+MySQL的流浪动物管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…