使用Pyecharts绘制数据可视化饼图

数据可视化

Pyecharts绘制饼图

一、实验名称

Pyecharts绘制饼图

二、实验目的

通过该实验的实践,要求学生能够使用pyecharts熟练绘制饼图。

三、实验原理

饼图原理很简单,使用一个圆代表了整体,然后将整体切割成多个楔形,每个楔形都代表整体中的一部分。所有楔形所占百分比的总和等于100%。

四、实验步骤

一、数据

本实验使用《中国居民膳食指南(2022)》中关于每类食物推荐摄入量最大值的数据。数据如下图所示:

二、环境搭建

1、下载数据到本地

(1)切换到E:\数据可视化\实验\代码1 目录

(2)下载Recommended_food.csv文件

2、打开jupyter

在打开的浏览器中,新建python3文件

以下代码均在jupyter中编写

三、代码实现

1、在绘制饼图时,我们需要导入 pandas 和 pyecharts 中的 Pie 模块。
2、本实验使用的数据已存储为CSV文件,命名为 "Recommended_food.csv",使用read_csv函数读取文件。
3、接下来,我们将使用pyecharts库中的Pie()方法初始化一个饼图对象,并将之前读取的数据传入该函数,从而绘制出一个初始的饼图。

代码如下:

import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts
data = pd.read_csv("E:\数据可视化\实验\代码1\Recommended_food.csv",encoding='GBK')
pie_chart= Pie()
pie_chart.add('',list(zip(data["Food"],data["quantity"]))) 
pie_chart.render_notebook()

绘制的饼图如下图所示:

下面将列举饼图的常用配置项:
4、设置标签属性,使用label_opts参数来指定标签的显示格式。formatter="{b}: {d}%"表示饼图的标签会显示类目名和对应的百分比。其中,{b}表示类目名,{d}表示百分比。另外,{a}表示系列名,{c}表示数值。

代码如下:

pie_chart.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
pie_chart.render_notebook()

效果如下图所示:

5、设置图例的方向和位置,orient="vertical"表示图例的方向为纵向,pos_top="2%"和pos_left="5%"分别表示图例距离顶部和左侧的位置为2%和5%。

代码如下:

pie_chart.set_global_opts(legend_opts=opts.LegendOpts(orient="vertical",pos_top="2%", pos_left="5%"))
pie_chart.render_notebook()

效果如下图所示:

6、设置为环形图,在add()函数的参数中添加了radius=["30%", "70%"],这样就将饼图设置为环形图。其中,"30%"表示内半径,即内圆的半径为整个饼图半径的30%,而"70%"表示外半径,即外圆的半径为整个饼图半径的70%。

代码如下:

pie = Pie()
pie.add('',list(zip(data["Food"],data["quantity"])),radius=["30%", "70%"])
pie.render_notebook()

效果如下图所示:

7、设置为南丁格尔玫瑰图,在add()函数的参数中添加了rosetype="area",这样就将饼图设置为南丁格尔玫瑰图。

代码如下:

pie_area = Pie()
pie_area.add('',list(zip(data["Food"],data["quantity"])),rosetype="area")
pie_area.render_notebook()

效果图如下图所示:

8、rosetype参数还有radius值可选,其中,"area"表示每个扇形角度一样,即每个扇形区域的角度相同;而“radius”表示每个扇形角度不一样。

代码如下:

pie_radius = Pie()
pie_radius.add('',list(zip(data["Food"],data["quantity"])),rosetype="radius")
pie_radius.render_notebook()

效果如下图所示:

9.完整代码展示如下:
import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts
# 从CSV文件中读取数据
data = pd.read_csv("E:\数据可视化\实验\代码1\Recommended_food.csv",encoding='GBK') 
# 初始化一个饼图对象
pie_chart = Pie()
# 添加数据到饼图中
pie_chart.add('',list(zip(data["Food"],data["quantity"])))
# 设置饼图的标签属性
pie_chart.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
# 设置饼图的全局配置,包括图例的方向和位置 
pie_chart.set_global_opts(legend_opts=opts.LegendOpts(orient="vertical",pos_top="2%", pos_left="5%"))
# 渲染
pie_chart.render_notebook()

展示结果如下:

五、实验总结

本实验通过绘制pyecharts库的饼图,讲解使用pandas读取文件,绘制饼图及使用pyecharts的set_global_opts和set_series_opts方法设置饼图扇形块的标签显示格式、扇形块的边框样式,图表的标题和副标题,图例的位置等。通过这些配置项,我们可以增加饼图的可读性,解释每个部分所呈现的含义,让图表更加直观和易于理解。

作者:呆呆小板栗

物联沃分享整理
物联沃-IOTWORD物联网 » 使用Pyecharts绘制数据可视化饼图

发表回复