用pyechars
来画一个漏斗图,漏斗图一般分为两种,一种是正三角经常用来表达数据分布,另一种是倒三角经常用来表达转化率。
下面先用pyecharts
画个正三角漏斗图
from pyecharts import options as opts
from pyecharts.charts import Funnel
data = [
['年薪100w', 10],
['年薪50w', 20],
['年薪30w', 30],
['年薪10w', 40]
]
Funnel(init_opts=opts.InitOpts(width="800px", height="400px"))\
.add(
"薪资分布",
data,
sort_="ascending",
tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{b} : {c}%"),
label_opts=opts.LabelOpts(position="inside"),
)\
.set_global_opts(title_opts=opts.TitleOpts(title="薪资分布", subtitle="纯属虚构"))\
.render("funnel_sort_ascending.html")
效果如下
从图中很容易看出,不同年薪收入下的人数分布,年薪百万的只是金字塔尖的那一小部分人。
下面简单介绍下漏斗图Funnel
的用法。首先Funnel
的构造函数可以传入InitOpts
对象,用来设置图形初始化的参数,上面例子中我们设置了漏斗图的宽高,即:width
和height
。
Tunnel
对象有个add
方法可以向漏斗图增加数据和配置,参数sort_
表示数据排序
# 'ascending'代表正三角
# 'descending',代表倒三角
参数tooltip_opts
表示提示框组件配置
# trigger="item"代表数据项图形触发,如上图鼠标放在“年薪30w”上的效果
# formatter代表格式化代码
# {b}代表数据名,如:年薪100w
# {c}代表数据值,如:年薪100w对应的10
参数label_opts
表示标签配置项
# position="inside" 代表数据名显示在数据项内部
明白了各参数的含义,我们就很容易画出倒三角漏斗图
from pyecharts import options as opts
from pyecharts.charts import Funnel
data = [
["展现", 100],
["点击", 80],
["访问", 60],
["咨询", 40],
["订单", 20],
]
Funnel(init_opts=opts.InitOpts(width="800px", height="400px"))\
.add(
series_name="页面转化",
data_pair=data,
gap=2,
tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{b} : {c}%"),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)\
.set_global_opts(title_opts=opts.TitleOpts(title="页面转化"))\
.render("funnel_chart.html")
效果如下
非常方便得看出用户从浏览页面到最终成单过程中的转化率。
欢迎关注公众号 渡码。