# Python如何实现漏斗图 ## 什么是漏斗图? 漏斗图(Funnel Chart)是一种常用于展示流程转化率的可视化图表,形似倒置的金字塔。它能够直观呈现各阶段的**数量递减关系**,典型应用场景包括: - 电商用户行为分析(浏览→加购→付款) - 销售转化漏斗(线索→商机→成交) - 营销活动效果追踪 ## Python实现方案 ### 1. 使用Matplotlib基础绘制 ```python import matplotlib.pyplot as plt def matplotlib_funnel(): stages = ['曝光', '点击', '加购', '付款'] values = [10000, 4000, 1500, 800] fig, ax = plt.subplots(figsize=(10,6)) for i in range(len(stages)): width = values[i] / max(values) * 0.8 ax.barh(y=len(stages)-i, width=width, height=0.5, color='#4BACC6', edgecolor='black') ax.text(width/2, len(stages)-i, f"{stages[i]}: {values[i]}", ha='center', va='center', color='white', fontweight='bold') ax.set_yticks(range(1, len(stages)+1)) ax.set_yticklabels(reversed(stages)) ax.set_title('电商转化漏斗图', pad=20) ax.axis('off') plt.show()
import plotly.graph_objects as go def plotly_funnel(): fig = go.Figure(go.Funnel( y = ["曝光", "点击", "加购", "付款"], x = [10000, 4000, 1500, 800], textposition = "inside", textinfo = "value+percent initial", opacity = 0.8, marker = {"color": ["#005F73", "#0A9396", "#94D2BD", "#E9D8A6"]} )) fig.update_layout( title="用户行为转化漏斗", funnelmode="stack", showlegend=False ) fig.show()
import pandas as pd # 计算转化率 df = pd.DataFrame({ 'stage': ['曝光', '点击', '加购', '付款'], 'count': [10000, 4000, 1500, 800] }) df['conversion'] = df['count'] / df['count'].shift(1)
方案 | 优点 | 缺点 |
---|---|---|
Matplotlib | 无需额外安装 | 需要手动计算布局 |
Plotly | 交互式/自动计算百分比 | 需要安装额外库 |
Pyecharts | 支持中文显示良好 | 文档主要为英文/中文 |
Python实现漏斗图的核心步骤: 1. 准备数据:各阶段名称及对应数值 2. 选择工具:基础需求用Matplotlib,复杂交互选Plotly 3. 视觉优化:颜色、标签、比例尺调整 4. 添加分析:标注关键转化率节点
对于需要嵌入网页的场景,推荐使用Plotly或Pyecharts;若需生成静态报告,Matplotlib+Seaborn的组合更为轻量。实际项目中建议配合漏斗图添加转化路径的桑基图进行综合分析。 “`
注:实际代码运行时需要安装相应库(
pip install matplotlib plotly pandas
)。完整项目示例可参考Pyecharts官方文档中的漏斗图案例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。