使用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方法设置饼图扇形块的标签显示格式、扇形块的边框样式,图表的标题和副标题,图例的位置等。通过这些配置项,我们可以增加饼图的可读性,解释每个部分所呈现的含义,让图表更加直观和易于理解。
作者:呆呆小板栗