Python可视化之漏斗图

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对象,用来设置图形初始化的参数,上面例子中我们设置了漏斗图的宽高,即:widthheight

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

效果如下

非常方便得看出用户从浏览页面到最终成单过程中的转化率。

欢迎关注公众号 渡码