一、堆叠柱状图
体现一个大分类包含的每个小分类的数据时,选用堆叠柱状图。
类型一:一般堆叠柱状图--适用于比较每个分组的数据总量
每一根柱子的高度,分别代表一个分组总数据的大小。在每一根柱子内部,不同颜色的柱子高度表示在这个数据部分中不同种类的数据大小。
类型二:百分比堆叠柱状图--适合用来比较不同分组数据内各个种类的占比情况,但不适用于对比各分组总数的大小
所有的柱子高度一样,都表示100%。在每一根柱子内部,不同颜色的柱子高度表示在这个数据分组中不同种类的数据大小
绘制堆叠柱状图
#导入对应模块
from pyecharts.charts import Bar
from pyecharts import options as opts
# 设置列表
months = ["7月", "8月", "9月", "10月", "11月", "12月"]
choc_sales=[5340,6078,6460,6475,7431,8038]
gum_sales=[4340,4379,4460,5075,5431,6038]
walnut_sales=[6340,5579,4460,4075,3431,3038]
label_options = opts.LabelOpts(position="inside")
#创建Bar对象并赋值给变量bar
bar = Bar()
#使用add_xaxis()函数,添加参数xaxis_data,将参数值设置为months
bar.add_xaxis(xaxis_data=months)
#使用add_yaxis()函数
# 将图例设置为“巧克力”
# y轴数值设置为列表choc_sales
#参数stack作用:将柱子堆叠,同系列配置相同stack值(数据类型是字符串)可以堆叠放置。即stack 值可以任意设置,只需要将 add_yaxis() 函数的 stack 值保持一致,即可生成堆叠柱状图。
bar.add_yaxis(y_axis=choc_sales,series_name="巧克力",stack="sales",label_opts=label_options)
#使用add_yaxis()函数
# 将图例设置为“口香糖”
# y轴数值设置为列表gum_sales
bar.add_yaxis(y_axis=gum_sales,series_name="口香糖",stack="sales",label_opts=label_options)
#使用add_yaxis()函数
# 将图例设置为“核桃”
# y轴数值设置为列表walnut_sales
bar.add_yaxis(y_axis=walnut_sales,series_name="核桃",stack="sales",label_opts=label_options)
#使用render函数将堆积柱状图保存在指定路径
bar.render("/Users/azhen/bar_stack.html")
小知识点:数据标签配置项--位置
#导入options模块
from pyecharts import options as opts
#将 opts.LabelOpts() 赋值给变量 label_options
label_options = opts.LabelOpts(position="inside")
#在 add_yaxis() 函数中添加参数 label_opts,将其值设置为变量 label_options
bar.add_yaxis(
series_name="巧克力",
y_axis=choc_sales,
stack="sales",
label_opts=label_options
)

二、用户口碑
用户口碑简单来说,就是口口相传式的营销,让用户来讨论和分享产品,并通过这种方式将产品传播出去,让更多的用户使用。
衡量用户口碑,可通过净推荐值(NPS)。NPS是衡量用户向周围朋友推荐产品意愿度。NPS越高,说明用户满意度越好,用户的推荐意向越高。
NPS=(推荐者数/总样本数)×100%-(批评者数/总样本数)×100%
三、绘制饼状图
饼状图用于表示不同分类的占比,通过每个扇形的大小来对比各分类。
#导入相应模块
from pyecharts.charts import Pie
# 列表data
data = [("苹果", 60), ("香蕉", 80), ("核桃", 120)]
# 创建Pie对象赋值给pie
pie = Pie()
#设置饼状图
# 添加参数series_name,将图例设置为空
# 添加参数data_pair,将值设置为data
# 添加参数label_opts,将值设置为opts.LabelOpts
# 在数据标签配置项中添加参数formatter,将值设置为"{d}%"
# 添加参数position,将值设置为"inside"
pie.add(series_name="",data_pair=data,label_opts = opts.LabelOpts(formatter="{d}%",position="inside"))
#使用render保存饼状图到指定路径
pie.render("/yequ/pie.html")
知识点:
设置饼图:
#设置饼状图
#series_name 是一个必选参数,可以将其设置为空,但不能省略
#data_pair参数:绘制饼状图不同分类的扇形大小类型是列表,列表中的每一项元素是由元组组成,格式为:[(分类1, 数值1), (分类2, 数值2)]。注意,这里的数值不是百分比,是分类对应的数值。
pie.add(series_name="",data_pair=data)
数据标签配置项--内容
pie.add(series_name="",data_pair=data,label_opts = opts.LabelOpts(formatter="{d}%",position="inside"))
参数formatter:设置数据标签的内容,类型为字符串,值如下图

四、变形饼状图
1.环形图:将饼图的角度判断改成了弧形长度判断。
修改饼状图半径的参数radius:其值有三种数据类型:
①数字--可以直接指定外半径的值,例如:radius=80;数值也就是外半径在网页上的像素值。
②字符串--例如:radius="40%",表示外半径为画布尺寸(高度或者宽度最小的一项)的40%长度。
③数组--例如:radius=[50,100]或者radius=["30%","60%"],数组的第一项是 内半径,第二项为外半径。如果将内半径设置成大于0,外半径设置成大于内半径,就可以绘制一个环形图
2.南丁格尔玫瑰图--一般用于对比非常相近的数值时,适当的夸大会有助于分辨。
南丁格尔玫瑰图以半径来反映数值,从视觉上,它会将数据的比例夸大。

使用:只需在add()函数中添加参数rosetype。有"radius"和"area"两种模式可以选择。
radius:扇形圆心角展现数据的百分比,半径展现数据的大小;
area:所有扇形圆心角相同,仅通过半径展现数据大小

# 使用add()设置饼状图的内容
# 添加参数series_name,将图例设置为空
# 添加参数data_pair,将值设置为data
# 添加参数rosetype,将参数值设置为"area"
# 添加参数radius,将饼状图的半径设置为[50, 150]
pie.add(
series_name="",
data_pair=data,
rosetype="area",
radius=[50,150]
)
总结对比
