个人技术分享


前言

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

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