Py学习  »  Python

用python轻松绘制漏斗图

Crossin的编程教室 • 5 年前 • 539 次点击  


大家好,欢迎来到 Crossin的编程教室 !
漏斗图是常用数据可视化图表之一,适用于业务流程比较长、环节比较多、周期比较长的单流程单向分析。通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在的环节,进而做出决策。
漏斗图用梯形面积表示某个环节业务量与上一个环节之间的差异。漏斗图从上到下,有逻辑上的顺序关系,表现了随着业务流程的推进业务目标完成的情况。

今天我们就来演示一下,如何通过 pyecharts 库绘制漏斗图。

一、基本漏斗图

from pyecharts import options as opts
from pyecharts.charts import Funnel
x=['浏览网站','加入购物车','下单','支付','完成交易']
y=[8000,3000,2000,800,600]
c = (
    Funnel()
    .add("", [[i,j] for i,j in zip(x,y)])
    .set_global_opts(title_opts=opts.TitleOpts(title="基本漏斗图"))
)
c.render_notebook()


注:导入的数据格式为二维列表。

二、倒置漏斗图

from pyecharts import options as opts
from pyecharts.charts import Funnel
x=['浏览网站','加入购物车','下单','支付','完成交易']
y=[8000,3000,2000,1500,1200]
c = (
    Funnel()
    .add("", 
         [[i,j] for i,j in zip(x,y)],
         sort_="ascending",
         label_opts=opts.LabelOpts(position="inside"))
    .set_global_opts(title_opts=opts.TitleOpts(title="基本漏斗图"))
)
c.render_notebook()


add内sort参数可以改变漏斗图的顺序,默认是'descending',表示从大到下;'ascending'表示从小到大;LabelOpts可以设置标签位置,有以下可选:'top','left','right','bottom','inside','insideLeft','insideRight''insideTop','insideBottom', 'insideTopLeft','insideBottomLeft''insideTopRight','insideBottomRight'


    

三、设置数据图形的颜色和距离

from pyecharts import options as opts
from pyecharts.charts import Funnel
x=['浏览网站','加入购物车','下单','支付','完成交易']
y=[8000,3000,2000,800,600]
c = (
    Funnel()
    .add("", 
         [[i,j] for i,j in zip(x,y)],
         color='auto',
         label_opts=opts.LabelOpts(position="top"),
         gap=5
)
    .set_global_opts(title_opts=opts.TitleOpts(title="基本漏斗图"))
)
c.render_notebook()


color='auto'代表颜色自动变化gap=5代表设置图形间隔

四、设置标签显示格式

from pyecharts import options as opts
from pyecharts.charts import Funnel
x=['浏览网站','加入购物车','下单','支付','完成交易']
y=[8000,3000,2000,800,600]
c = (
    Funnel()
    .add("流量", 
         [[i,j] for i,j in zip(x,y)],
         tooltip_opts=opts.TooltipOpts(trigger="item", 
                                       formatter="{a} 
{b} : {c}"
,
                                       trigger_on="mousemove",  #鼠标移动时触发
                                       is_show=True)
                                       )
    .set_global_opts(title_opts=opts.TitleOpts(title="基本漏斗图"))
)
c.render_notebook()


TooltipOpts参数介绍:trigger:触发类型,'item'表示数据项图形触发;formatter:标签内容格式器,{a}代表系列名,{b}代表数据名,{c}代表数据值,是换行符;trigger_on:提示框触发的条件,'mousemove'代表鼠标移动时触发。

以上就是 pyecharts 绘制漏斗图的基本操作,下次做数据可视化的时候就可以拿来用啦!

如果文章对你有帮助,欢迎转发/点赞/收藏~

作者:小dull鸟

来源:python数据分析之禅


_往期文章推荐_

50个Python经典图表模板一文打包收藏




如需了解付费精品课程及教学答疑服务
请在Crossin的编程教室内回复: 666

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/116184