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

news2024/9/23 15:26:31

文章目录

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


前言

笔记:编写程序,绘制一个展示支付宝月账单报告的饼图
(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. 最后,显示绘制的饼图。

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

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

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

相关文章

【设计模式】创建者模式之 工厂方法 抽象工厂

工厂方法模式(Factory Method) 一个特定功能,往往有多种实现方式,但是很难有某一个实现可以适用于所有情况,因此往往需要根据特定的场景选择不同的实现。试想:把选择具体实现的代码放在业务中会发生什么?每当我们需要…

压缩png图片大小怎么操作?试试这招一键压缩图片体积

png图片是一种无损压缩格式,体积也会比其他格式的图片要大。但是,我们在使用的过程中遇到需要给png图片压缩体积的情况时要怎么办呢?很简单,只需要使用png压缩大小(https://www.yasuotu.com/png)网站-压缩图…

SuperMap GIS基础产品FAQ集锦(20240429)

一、SuperMap iServer 问题1:咨询一下,正式许可插上后,出现这样的提示。可能是哪方面的原因呢? 11.1.1 【问题原因】虚拟机环境读取USB设别需要设置USB映射 【解决办法】虚拟平台重新进行USB映射操作后能正常读取许可 问题2&a…

【数字图像处理笔记】Matlab实现图像平滑算法 均值-中值-高斯滤波 (三)

💌 所属专栏:【数字图像处理笔记】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x…

Obsidium v1.5.4壳 逆向分析

样本是使用这个壳进行打包的 来进行逆向 进入X32 DBG中 进来一看就是经典花指令 混淆解析器 可以在CE中查找指令地址 来得到当前真正执行的指令 对SEH链进行劫持 马上就来个int 1进入异常处理函数 无视异常 直接进去 观察Zwcontinue函数传进去的Context结构体 结构体偏移…

HFP event

0 Preface/Foreword NOTE:在来电提示音在响时候,每3s会进入一次。 也就是说:协议栈,没3s会调用一次app_hfp_event_callback。 回调函数在hfp初始化时候通过btif_hf_register_callback注册。 提示音调节: iPhone6s iO…

Leetcode编程练习

面试题-消失的数字 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void reverse(vector<int>& nums, int start, int end) {while (start < end) {swap(nums[start], nums[end]);start 1;end - 1;}}void rotate(vector<int>& …

IPD-开发流程

2024-5-6记录于PR办公室 在上一家公司做硬件产品经理的时候&#xff0c;Richard Li曾花费“巨资”请了华为前战略专家给我们培训&#xff0c;讲授IPD这门课的模式都很IPD&#xff0c;当时完全没重视&#xff0c;光想着不可能靠这个能把产品做好&#xff0c;这样做产品必定是一批…

RS2057XH功能和参数介绍及规格书

RS2057XH 是一款由润石科技&#xff08;Runic Semiconductor&#xff09;生产的模拟开关芯片&#xff0c;其主要功能和参数如下&#xff1a; 产品特点&#xff1a; 低电压操作&#xff1a;支持低至1.8V的工作电压&#xff0c;适用于低功耗应用。 高带宽&#xff1a;具有300MHz的…

Matlab 手写板设计

1、介绍 MATLAB手写板可以作为一个很好的数据输入口&#xff0c;其可以获取该手写板上任意字母、数字&#xff0c;甚至可以制作样本数据。具体用途体现在如下几方面&#xff1a; 数学公式输入&#xff1a;手写板允许用户直接用手写方式输入复杂的数学公式&#xff0c;这对于使…

C/C++ BM32 合并二叉树

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 树的题目大概率是要用到递归的&#xff0c;将一个树的问题拆分成子树的问题&#xff0c;不断拆分。 这题也用到了递归的思想。 题目 已知两颗二叉树&#xff0c;将它们合并成一颗…

基于springboot+vue+Mysql的租房网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Java17 --- SpringCloud之Nacos

目录 一、下载nacos并运行 1.1、创建9001微服务作为提供者 1.2、创建80微服务作为消费者 二、naocs配置中心规则与动态刷新 2.1、创建3377微服务 2.2、在nacos中创建配置文件 三、nacos数据模型之Namespace-Group-Datald 3.1、DatalD方案 3.2、Group方案 3.3、Name…

产业观察:电机驱动成为人形机器人的动力核心

前不久&#xff0c;波士顿动力发布一则“再见&#xff0c;液压Atlas”视频&#xff0c;宣告其著名的液压驱动双足人形机器人Atlas正式退役。这则视频引起全球所有Atlas粉丝的高度关注。然而紧接着&#xff0c;波士顿动力便又推出了全部由电机驱动的新一代Atlas机器人&#xff0…

数据结构相关

数据结构相关 文章目录 数据结构相关[TOC](文章目录)前言一、数据结构介绍二、不同的逻辑结构的存储方案(Java实现)2.1 线性结构&#xff1a;线性表、数组2.2 线性结构&#xff1a;栈2.3 线性结构&#xff1a;队列2.4 树形结构&#xff1a;树 三、一些常见的3.1 布隆过滤器Bloo…

自动化工具

一、介绍一些自动化的工具 puppet和chef用的是Ruby语言http协议&#xff0c;淘汰 saltstack Python语言 c/s ssh协议&#xff0c;5% ansible 无cilent ssh协议 用Python开发 95% 二、ansible简介 2.1 ansible自动化运维工具特点 Ansible 与 Saltstack 均是基于…

Day_1

1. 环境搭建 技术选型 后端项目结构 sky-take-out maven父工程&#xff0c;统一管理依赖版本&#xff0c;聚合其他子模块 sky-common 子模块&#xff0c;存放公共类&#xff0c;例如&#xff1a;工具类、常量类、异常类等 sky-pojo 子模块&#xff0c;存放实体类、VO、DTO…

【爬虫】爬取A股数据写入数据库(一)

1. 对东方财富官网的分析 步骤&#xff1a; 通过刷新网页&#xff0c;点击等操作&#xff0c;我们发现https://datacenter-web.eastmoney.com/api/data/v1/get?请求后面带着一些参数即可以获取到相应数据。我们使用python来模拟这个请求即可。 我们以如下选择的页面为切入点…

GiantPandaCV | FasterTransformer Decoding 源码分析(三)-LayerNorm介绍

本文来源公众号“GiantPandaCV”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;FasterTransformer Decoding 源码分析(三)-LayerNorm介绍 作者丨进击的Killua 来源丨https://zhuanlan.zhihu.com/p/669440844 编辑丨GiantPandaC…

ollama + Anythingllm的安装

Ollama官网&#xff1a;https://ollama.com Anythingllm 官网下载&#xff1a;https://useanything.com/download 在Linux下如果直接运行./AnythingLLMDesktop.AppImage 报错的话&#xff0c;可以尝试以下命令&#xff1a; ./AnythingLLMDesktop.AppImage --appimage-extract …