【Python百日进阶-数据分析】Day224 - plotly漏斗图px.funnel()

news2025/1/14 18:40:16

文章目录

  • 一、语法
  • 二、参数
  • 三、返回值
  • 四、实例
    • 4.1 使用 plotly.express 的漏斗图
      • 4.1.1 基本漏斗图
      • 4.1.2 堆积漏斗图
      • 4.1.3 基本区域漏斗图
    • 4.2 使用 plotly.graph_objects 的漏斗图
      • 4.2.1 基本漏斗图
      • 4.2.2 设置标记大小和颜色
      • 4.2.3 堆积漏斗图
      • 4.2.4 基本区域漏斗图
      • 4.2.5 在区域漏斗图中设置标记大小和颜色
      • 4.2.6 多区域漏斗

一、语法

在漏斗图中,每一行都data_frame表示为漏斗的一个矩形扇区。

二、参数

  • data_frame ( DataFrame或类似数组的或dict ) – 需要传递此参数才能使用列名(而不是关键字名)。Array-like 和 dict 在内部转换为 pandas DataFrame。可选:如果缺少,则使用其他参数在后台构建 DataFrame。

  • x ( str或int或Series或array-like ) – 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于在笛卡尔坐标中沿 x 轴定位标记。或者可以是列引用列表或 array_likes 列表,在这种情况下,数据将被视为“宽”而不是“长” x。 y

  • y(str或int或Series或array-like)– 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于在笛卡尔坐标中沿 y 轴定位标记。或者可以是列引用列表或 array_likes 列表,在这种情况下,数据将被视为“宽”而不是“长” x。 y

  • color (str或int或Series或array-like)– 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于为标记分配颜色。

  • facet_row ( str或int或Series或array-like ) – 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于在垂直方向上为多面子图分配标记。

  • facet_col ( str或int或Series或array-like ) – 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于在水平方向上为多面子图分配标记。

  • facet_col_wrap ( int ) – 最大分面列数。以该宽度包装列变量,以便列分面跨越多行。如果为 0,则忽略,如果设置facet_row了或 a ,marginal则强制为 0。

  • facet_row_spacing ( float between 0 and 1 ) – 分面行之间的间距,以纸张为单位。使用 facet_col_wrap 时,默认值为 0.03 或 0.0.7。

  • facet_col_spacing ( float between 0 and 1 ) – 分面列之间的间距,以纸张为单位默认为 0.02。

  • hover_name(str或int或Series或array-like)- 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值在悬停工具提示中以粗体显示。

  • hover_data ( list of str or int , or Series or array-like , or dict ) – 或者 pandas Series 中的列名列表data_frame,或者是 array_like 对象或者以列名作为键的 dict,值为 True (默认为格式)False(为了从悬停信息中删除此列)或格式字符串,例如 ‘:.3f’ 或 ’ | %a’ 或类似列表的数据出现在悬停工具提示中,或带有布尔或格式化字符串的元组作为第一个元素,以及类似列表的数据作为第二个元素出现在悬停中 这些列中的值在悬停工具提示中显示为额外数据.

  • custom_data(str或int的列表,或Series或类似数组)——data_frame或 pandas Series 或 array_like 对象中的列名称这些列中的值是额外数据,例如用于小部件或 Dash 回调。此数据对用户不可见,但包含在图形发出的事件中(套索选择等)

  • text ( str或int或Series或array-like ) – 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值在图中显示为文本标签。

  • animation_frame ( str或int或Series或array-like ) – 中列的名称data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于为动画帧分配标记。

  • animation_group ( str或int或Series或array-like ) – 中的列名data_frame,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于提供跨动画帧的对象恒定性:具有匹配 animation_group 的行将被视为描述每个帧中的相同对象。

  • category_orders(带有 str 键和 str 值列表的字典(默认{}))——默认情况下,在 Python 3.6+ 中,轴、图例和构面中的分类值的顺序取决于这些值第一次遇到的顺序data_frame(并且没有在低于 3.6 的 Python 中默认保证顺序)。此参数用于强制对每列的值进行特定排序。此 dict 的键应对应于列名,值应是与所需的特定显示顺序相对应的字符串列表。

  • labels (带有 str 键和 str 值的字典(默认{}))——默认情况下,列名在图中用于轴标题、图例条目和悬停。这个参数允许它被覆盖。此 dict 的键应对应于列名,值应对应于要显示的所需标签。

  • color_discrete_sequence ( list of str ) – 字符串应该定义有效的 CSS 颜色。当color设置为 且对应列中的值不是数字时,该列中的值通过color_discrete_sequence 按 中描述的顺序循环分配颜色category_orders,除非 的值 color是 中的键color_discrete_map。子模块中提供了各种有用的颜色序列plotly.express.colors,特别是plotly.express.colors.qualitative.

  • color_discrete_map (dict with str keys and str values (default {})) – 字符串值应该定义有效的 CSS-colors 用于覆盖 color_discrete_sequence以将特定颜色分配给与特定值对应的标记。中的键color_discrete_map应该是由 表示的列中的值color。或者,如果 的值color是有效颜色,则’identity’可以传递字符串以直接使用它们。

  • opacity ( float ) – 介于 0 和 1 之间的值。设置标记的不透明度。

  • orientation (str,‘h’水平或’v’垂直之一。) - (默认’v’如果提供 和x并且y都连续或都分类,否则’v’('h' )是分类和 )是连续的,否则提供'h' )) if x(yy(x’v’() if only x(y

  • log_x (boolean (default False)) – 如果True是,x 轴在笛卡尔坐标中按对数缩放。

  • log_y (boolean (default False)) – 如果True是,y 轴在笛卡尔坐标中按对数缩放。

  • range_x (两个数字的列表) – 如果提供,则覆盖笛卡尔坐标中 x 轴上的自动缩放。

  • range_y (两个数字的列表) – 如果提供,则覆盖笛卡尔坐标中 y 轴上的自动缩放。

  • title ( str ) – 图形标题。

  • template(str或dict或plotly.graph_objects.layout.Template 实例)–图形模板名称(必须是 plotly.io.templates 中的键)或定义。

  • width (int (default None)) – 图形宽度(以像素为单位)。

  • height (int (default None)) – 以像素为单位的图形高度。

三、返回值

plotly.graph_objects.Figure

文章目录

  • 一、语法
  • 二、参数
  • 三、返回值
  • 四、实例
    • 4.1 使用 plotly.express 的漏斗图
      • 4.1.1 基本漏斗图
      • 4.1.2 堆积漏斗图
      • 4.1.3 基本区域漏斗图
    • 4.2 使用 plotly.graph_objects 的漏斗图
      • 4.2.1 基本漏斗图
      • 4.2.2 设置标记大小和颜色
      • 4.2.3 堆积漏斗图
      • 4.2.4 基本区域漏斗图
      • 4.2.5 在区域漏斗图中设置标记大小和颜色
      • 4.2.6 多区域漏斗

四、实例

漏斗图通常用于表示业务流程不同阶段的数据。它是商业智能中识别流程潜在问题区域的重要机制。例如,它用于观察销售过程中每个阶段的收入或损失,并显示逐渐减少的值。每个阶段都显示为所有值总和的百分比。

4.1 使用 plotly.express 的漏斗图

4.1.1 基本漏斗图

import plotly.express as px
data = dict(
    number=[39, 27.4, 20.6, 11, 2],
    stage=["网站访问", "下载量", "潜在客户", "询价", "成交"])
fig = px.funnel(data, x='number', y='stage')
fig.show()

在这里插入图片描述

4.1.2 堆积漏斗图

import plotly.express as px
import pandas as pd
stages = ["浏览", "下载", "潜在客户", "询价", "成交"]
df_mtl = pd.DataFrame(dict(number=[39, 27.4, 20.6, 11, 3], stage=stages))
df_mtl['office'] = '蒙特利尔'
df_toronto = pd.DataFrame(dict(number=[52, 36, 18, 14, 5], stage=stages))
df_toronto['office'] = '多伦多'
df = pd.concat([df_mtl, df_toronto], axis=0)
fig = px.funnel(df, x='number', y='stage', color='office')
fig.show()

在这里插入图片描述

4.1.3 基本区域漏斗图

使用px.funnel_area,DataFrame 的每一行都表示为漏斗的一个阶段。

import plotly.express as px
fig = px.funnel_area(names=["The 1st","The 2nd", "The 3rd", "The 4th", "The 5th"],
                    values=[5, 4, 3, 2, 1])
fig.show()

在这里插入图片描述

4.2 使用 plotly.graph_objects 的漏斗图

4.2.1 基本漏斗图

from plotly import graph_objects as go

fig = go.Figure(go.Funnel(
    y = ["浏览", "下载", "潜在客户", "询价", "成交"],
    x = [39, 27.4, 20.6, 11, 2]))

fig.show()

在这里插入图片描述

4.2.2 设置标记大小和颜色

此示例使用textposition和textinfo来确定图表上显示的信息,并显示如何自定义条形。

from plotly import graph_objects as go

fig = go.Figure(go.Funnel(
    y = ["浏览", "下载", "潜在客户", "询价", "成交"],
    x = [39, 27.4, 20.6, 11, 2],
    textposition = "inside",
    textinfo = "value+percent initial",
    opacity = 0.65, marker = {"color": ["deepskyblue", "lightsalmon", "tan", "teal", "silver"],
    "line": {"width": [4, 2, 2, 3, 1, 1], "color": ["wheat", "wheat", "blue", "wheat", "wheat"]}},
    connector = {"line": {"color": "royalblue", "dash": "dot", "width": 3}})
    )

fig.show()

在这里插入图片描述

4.2.3 堆积漏斗图

from plotly import graph_objects as go

fig = go.Figure()

fig.add_trace(go.Funnel(
    name = 'Montreal',
    y = ["浏览", "下载", "潜在客户", "询价"],
    x = [120, 60, 30, 20],
    textinfo = "value+percent initial"))

fig.add_trace(go.Funnel(
    name = 'Toronto',
    orientation = "h",
    y = ["浏览", "下载", "潜在客户", "询价", "要约"],
    x = [100, 60, 40, 30, 20],
    textposition = "inside",
    textinfo = "value+percent previous"))

fig.add_trace(go.Funnel(
    name = 'Vancouver',
    orientation = "h",
    y = ["浏览", "下载", "潜在客户", "询价", "要约", "成交"],
    x = [90, 70, 50, 30, 10, 5],
    textposition = "outside",
    textinfo = "value+percent total"))

fig.show()

在这里插入图片描述

4.2.4 基本区域漏斗图

from plotly import graph_objects as go

fig = go.Figure(go.Funnelarea(
    text = ["The 1st","The 2nd", "The 3rd", "The 4th", "The 5th"],
    values = [5, 4, 3, 2, 1]
    ))
fig.show()

在这里插入图片描述

4.2.5 在区域漏斗图中设置标记大小和颜色

from plotly import graph_objects as go

fig = go.Figure(go.Funnelarea(
      values = [5, 4, 3, 2, 1], text = ["The 1st","The 2nd", "The 3rd", "The 4th", "The 5th"],
      marker = {"colors": ["deepskyblue", "lightsalmon", "tan", "teal", "silver"],
                "line": {"color": ["wheat", "wheat", "blue", "wheat", "wheat"], "width": [0, 1, 5, 0, 4]}},
      textfont = {"family": "Old Standard TT, serif", "size": 13, "color": "black"}, opacity = 0.65))
fig.show()

在这里插入图片描述

4.2.6 多区域漏斗

from plotly import graph_objects as go

fig = go.Figure()

fig.add_trace(go.Funnelarea(
    scalegroup = "first", values = [500, 450, 340, 230, 220, 110], textinfo = "value",
    title = {"position": "top center", "text": "Sales for Sale Person A in U.S."},
    domain = {"x": [0, 0.5], "y": [0, 0.5]}))

fig.add_trace(go.Funnelarea(
    scalegroup = "first", values = [600, 500, 400, 300, 200, 100], textinfo = "value",
    title = {"position": "top center", "text": "Sales of Sale Person B in Canada"},
    domain = {"x": [0, 0.5], "y": [0.55, 1]}))

fig.add_trace(go.Funnelarea(
    scalegroup = "second", values = [510, 480, 440, 330, 220, 100], textinfo = "value",
    title = {"position": "top left", "text": "Sales of Sale Person A in Canada"},
    domain = {"x": [0.55, 1], "y": [0, 0.5]}))

fig.add_trace(go.Funnelarea(
            scalegroup = "second", values = [360, 250, 240, 130, 120, 60],
            textinfo = "value", title = {"position": "top left", "text": "Sales of Sale Person B in U.S."},
            domain = {"x": [0.55, 1], "y": [0.55, 1]}))

fig.update_layout(
            margin = {"l": 200, "r": 200}, shapes = [
            {"x0": 0, "x1": 0.5, "y0": 0, "y1": 0.5},
            {"x0": 0, "x1": 0.5, "y0": 0.55, "y1": 1},
            {"x0": 0.55, "x1": 1, "y0": 0, "y1": 0.5},
            {"x0": 0.55, "x1": 1, "y0": 0.55, "y1": 1}])

fig.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postgresql遇到的问题

解决问题之前最好先下载个pgadmin可视化工具,下面可能要用到。先看图,了解基本的\n 代表是当前数据库下面schemas的文件\du 代表你有这写用户(角色),后面代表的权限\l 代表的是你的数据库在敲命令之前你德先进去docker…

excel表格技巧:Ctrl+T在超级表中的妙用

在介绍超级表的其它奇妙功能之前,小编先给大家说一个在创建超级表时应该注意的小细节。在创建超级表的对话框里,有一个“表包含标题”的选项,大家一定要记得勾选哦,不然超级表就会变成下面这样:超级表会自作聪明的在表…

【ROS】package.xml文件解析

文章目录 文章目录 前言 一、基本格式 1.基本结构 2.必要标签 3.依赖关系 二、Metapackage包 总结 前言 ros每个功能包中都有一个包清单,它是一个名为package.xml的XML 文件,它必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属…

Vue过滤器

Vue过滤器1. 概述2. 全局过滤器与局部过滤器2.1 过滤器参数2.2 过滤器的串联1. 概述 在Vue.js中,过滤器主要用于文本的格式化,或者组件数据的过滤与排序等。从Vue2.0.0版本开始,内置的过滤器已经被删除,需要自己编写。 2. 全局过…

【OpenGL学习】绘制三角形

绘制三角形 上节中完成了窗口的绘制,这节我们主要实现在窗口中完成一个最简单的三角形的绘制,同样,要完成一个三角形的绘制,需要以下内容: Vertex Array 存放顶点数据的数组(实际上存放的是顶点数据的指针…

Imagination与Synopsys携手加快移动端与数据中心3D可视化技术的发展

IMG CXT GPU与Synopsys Fusion QIK一同优化移动光追应用的PPA中国北京 - 2023年1月13日- Imagination Technologies与领先的电子设计自动化(EDA)解决方案和服务商Synopsys一起为移动光追解决方案打造一个更加快速、高效的设计流程。光追技术通过模仿光线…

1.1、操作系统的概念、功能和目标

整体框架 1、操作系统的层次结构 对于操作系统: 负责管理协调硬件、软件登计算机资源的工作为上层的应用程序、用户提供简单易用的服务操作系统是系统软件,而不是硬件 对于裸机(纯硬件): 例如:CPU、内存…

2023年音视频开发前景如何?音视频开发需要掌握哪些技术?

引言 音视频开发这一行业其实已经出现了有些年头了,但为什么现在就突然火爆了起来呢?实则就是两个字,需求;在这两年中,人们将工作、生活、学习相关的作业都其变成线上化,所以短视频、超高清视频和实时音视频…

【C++】STL容器:list的模拟实现

一、list的结构 1. list的节点 list的底层是一个带头双向循环链表&#xff0c;但list本身和list的节点是不同的结构&#xff0c;需要分开实现。 list节点的结构&#xff1a; template<class T> struct list_node {list_node<T>* _next;list_node<T>* _pre…

ELK日志(4)

搭建filebeatredislogstasheskibana架构&#xff0c;拓扑图参考ELK&#xff08;3&#xff09;安装redis&#xff0c;并启动&#xff08;1&#xff09;准备安装和数据目录[rootes ~]# mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}&#xff08;2&#xff09;下载redi…

CES 2023:推动低碳化与数字化,英飞凌塑造可持续未来

在参展CES 2023的3200多家企业当中&#xff0c;英飞凌虽然在规模上还比不上某些国际科技巨头&#xff0c;但是其展示的内容却相当引人瞩目。作为一家创立于1999年的高科技企业&#xff0c;英飞凌在全球总计拥有56个研发机构&#xff0c;20个生产工厂&#xff0c;其技术实力之雄…

fiddler 抓手机的包

目录 一、fiddler抓手机包的介绍 二、一个前提&#xff0c;及配置 1.前提 2.前提配置 三、两大步 1.设置fiddler 2.设置手机 一、fiddler抓手机包的介绍 Fiddler是一款非常流行并且实用的http抓包工具&#xff0c;它的原理是在本机开启了一个http的代理服务器&#xff…

分享111个JavaScript源码,总有一款适合您

JavaScript源码 分享111个JavaScript源码&#xff0c;总有一款适合您 源码下载链接&#xff1a;https://pan.baidu.com/s/1aUIpouX5nTwW1FF-8lStnw?pwdjh3v 提取码&#xff1a;jh3v 采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 ​ 下面是文件的名字&#xff0c;我放…

Golang Web Application

Golang Web Application GoLang Web App基本设置 1.导入库 导入fmt和net/http,http建立一个/和编写一个indexPage的函数,fmt编写一个写Hello world! package mainimport ("fmt""net/http" )func main() {http.HandleFunc("/", indexPage)http.L…

[数据结构复习]自用大纲

内容多基于王道和李春葆《数据结构教程》&#xff0c;做复习提纲之用 基本内容回顾 顺序队 队列是线性表&#xff08;具有逻辑上的前驱后继关系&#xff09;。头插尾删&#xff0c;先进先出。 队列的实现至少需要维护如下内容&#xff08;一数组&#xff0c;二指针&#xff…

电脑开机屏幕闪烁后变成蓝屏无法启动怎么办?

电脑开机屏幕闪烁后变成蓝屏无法启动怎么办&#xff1f;有用户在将电脑开机之后&#xff0c;出现了屏幕会闪动的情况&#xff0c;接着电脑屏幕就变成蓝屏的了。而且再次启动的时候也是这样。这个情况下是我们的系统出现了问题&#xff0c;我们来看看如何去使用U盘进行系统重装的…

python+django大学生体质测试管理系统

系统分为学生和管理员&#xff0c;教师三个角色 学生的主要功能有&#xff1a; 1.学生注册和登陆系统 2.查看系统的公告资讯信息 3.学生查看体质测试的项目&#xff0c;下载测试文件 4.学生留言板在线留言 5.学生个人中心修改个人资料&#xff0c;修改密码 6.学生个人中心查询我…

Java 介绍与环境搭建

文章目录Java 介绍与环境搭建Java 背景介绍Java 背景故事Java 三大平台Java SEJava MEJava EEJava 跨平台工作原理平台与跨平台跨平台工作原理JDK 下载和安装下载 JDK安装 JDK第一个 Java 程序HelloWorld 介绍Java 程序开发的三个步骤HelloWorld 案例的编写和运行HelloWord 案例…

如何通过Terraform Associate考试并获得证书

1 什么是Terraform? Terraform是一个IaC工具&#xff0c;IaC全称为Infrastructure as Code&#xff0c;基础设施即代码。它的理念是通过代码来管理基础设施&#xff0c;如服务器、数据库等&#xff0c;更多请看《Terraform入门教程&#xff0c;示例展示管理Docker和Kubernete…

mysql快速生成100W条测试数据(5)商品销售数据并存入mysql数据库

这是之前的文章里面包含一些以前的一些操作流程可以进行参考学习 更加详细操作步骤在第一篇文章里面 mysql快速生成100W条测试数据&#xff08;1&#xff09;&#xff1a;游戏人物数据 mysql快速生成100W条测试数据&#xff08;2&#xff09;公司员工信息 mysql快速生成100W条测…