数据可视化|pyecharts饼状图
原创
©著作权归作者所有:来自51CTO博客作者大话数据分析的原创作品,请联系作者获取转载授权,否则将追究法律责任
饼状图常用于统计学模型,显示的是一个数据系列,图表中的每个数据系列具有唯一的颜色。饼状图只有一个数据系列,组成了饼状图中各项的大小与各项总和的比例。饼状图中的数据点显示为整个饼状图。
饼状图的绘图要点:
- 仅有一个要绘制的数据系列
- 要绘制的数值没有负值
- 要绘制的数值几乎没有零值
- 类别数目无限制
- 各类别分别代表整个饼状图的一部分
- 各个部分需要标注百分比
本文借助Python中的pyecharts库,绘制常用的饼状图,圆环图、玫瑰图(饼状图的变种), 生成饼状图可以分为如下几步,导入pyecharts库,导入数据,基本属性设置,如下为常用的饼状图示例,详细操作请看代码注释。
1
饼状图
from pyecharts.charts importimport pyecharts.options as
num = [506.2,81.7,47.4]lab = ['东部地区', '中部地区', '西部
from pyecharts.charts import Pie
import pyecharts.options as opts
num = [506.2,81.7,47.4]
lab = ['东部地区', '中部地区', '西部地区'] #导入数据
(
Pie(init_opts=opts.InitOpts(width='720px', height='320px')) #自定义画布大小
.add(series_name='', data_pair=[(i, j)for i, j in zip(lab, num)]) #遍历数据
.set_global_opts(title_opts=opts.TitleOpts(title="区域快递业务总量/亿件",subtitle="2019年国家邮政局监管报告")) #添加主、副标题
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) #添加数据标签
).render_notebook()地区'] #导入数据
('720px', height='320px')) #自定义画布大小'', data_pair=[(i, j)for i, j in zip(lab, num)]) #遍历数据"区域快递业务总量/亿件",subtitle="2019年国家邮政局监管报告")) #添加主、副标题"{b}: {d}%")) #添加数据标签 ).render_notebook()
2
圆环图
from pyecharts.charts import Pie
import pyecharts.options as opts
num = [506.2,81.7,47.4]
lab = ['东部地区', '中部地区', '西部地区'] #导入数据
(
Pie(init_opts=opts.InitOpts(width='720px', height='320px')) #指定画布大小
.add(series_name='',
radius=['40%', '75%'], #设置内、外环大小
data_pair=[(j, i) for i, j in zip(num, lab)]) #遍历数据
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))###添加数据标签
.set_global_opts(title_opts=opts.TitleOpts(title="区域快递业务总量/亿件",subtitle="2019年国家邮政局监管报告")) #添加主、副标题
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) #添加数据标签
).render_notebook()
3
玫瑰图
# 情绪分布玫瑰图
from pyecharts.charts import Pie
from pyecharts import options as opts
cate = ['积极情绪','中性情绪','消极情绪']
data = [322, 96, 118] # 示例数据
(
Pie(init_opts=opts.InitOpts(width='720px', height='320px')) #指定图表大小
.add('', [list(z) for z in zip(cate, data)],
radius=["30%", "75%"],
rosetype="radius") #设置为玫瑰图
.set_global_opts(title_opts=opts.TitleOpts(title="情绪分布玫瑰图")) #添加标题
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) #数据标签
).render_notebook()