数据可视化--构成和差异

一、堆叠柱状图

体现一个大分类包含的每个小分类的数据时,选用堆叠柱状图。

类型一:一般堆叠柱状图--适用于比较每个分组的数据总量

每一根柱子的高度,分别代表一个分组总数据的大小。在每一根柱子内部,不同颜色的柱子高度表示在这个数据部分中不同种类的数据大小。

类型二:百分比堆叠柱状图--适合用来比较不同分组数据内各个种类的占比情况,但不适用于对比各分组总数的大小

所有的柱子高度一样,都表示100%。在每一根柱子内部,不同颜色的柱子高度表示在这个数据分组中不同种类的数据大小

  1. 绘制堆叠柱状图

#导入对应模块
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")

知识点:

  1. 设置饼图:

#设置饼状图
#series_name 是一个必选参数,可以将其设置为空,但不能省略
#data_pair参数:绘制饼状图不同分类的扇形大小类型是列表,列表中的每一项元素是由元组组成,格式为:[(分类1, 数值1), (分类2, 数值2)]。注意,这里的数值不是百分比,是分类对应的数值。
pie.add(series_name="",data_pair=data)
  1. 数据标签配置项--内容

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]
    )

  1. 总结对比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值