可视化客户旅程

数据挖掘 Python r 可视化
2022-02-13 05:36:12

客观的

我想使用 Python 或 R 可视化典型客户的旅程。像往常一样,客户在不同的时间点购买不同的产品。

我检查了每个客户的旅程,并选择了产品 A作为起点。10,000 名客户购买了产品 A作为他们的第一个产品。现在我想展示他们旅程的“流程”。10 分钟后,这 10,000 名客户中有 2,500 名购买了产品 B作为他们的第二个产品。产品 C在 25 分钟后被 7,500 人购买。

我正在寻找更复杂的桑基图。您从左侧高度为 10,000 的条形图开始。右侧有两个条形图,您可以看到左右图表之间的连接。客户购买下一个产品的时间越长,右侧的条距左侧越远。所有的酒吧都有带有产品名称的标题。图表上的快速信息也很好。

最终图表将可视化更长的客户旅程(超过两种产品)。

我试过的

我使用 networkD3 R 包来可视化一个 sankeyNetwork,但是我无法根据我的需要放置条形图。

你对 Python 或 R 包有什么建议吗,或者有没有办法自己画出来(在合理的时间内)?

1个回答

对于您的想法来说,这可能太简单了,但也许会有所帮助:

示例数据

library(tidyverse); library(magrittr) # load R libraries
sample_data = data.frame(Customer = 1:100, A = 0, B = rep(c(10,NA), c(25,75)), C = rep(c(NA,25), c(25,75))) 

条形图

sample_data %>% gather("Product", "Time", -Customer) %>% ggplot()+geom_bar(aes(x=Time, fill=Product))+geom_label(aes(x=Time, label=Product), y=-Inf, vjust=0)

在此处输入图像描述

点图

这样做的用途是您可以映射客户(因为 y 轴不是计数而是客户 ID),即您可以添加连接它们的线但它们会太多,所以我没有(他们可以不过,对于 A->B、B->C、A->C 等进行分组)

sample_data %>% gather("Product", "Time", -Customer) %>% ggplot()+geom_point(aes(x=Time, y=Customer, color=Product))+geom_label(aes(x=Time, label=Product), y=-Inf, vjust=0)

在此处输入图像描述