我想用Python或R来想象一个典型的客户的旅程,和往常一样,客户在不同的时间点购买不同的产品。
我检查了每一位顾客的行程,选择了A产品作为起点。10,000名顾客购买A产品作为他们的第一件产品。现在我想展示他们旅程的“流动”。10分钟后,这10,000名顾客中有2,500人购买了B类产品,作为他们的第二种产品。产品C在25分钟后被7500人购买。
我正在寻找一个更复杂的桑基图表。从左边高度为10,000的条形图开始。右边有两个条形图,你可以看到左右图之间的连接。顾客购买下一个产品所花的时间越长,右边的酒吧离左边的就越远。所有的酒吧都有产品名称的标题。图表上的快速信息也会很好。
最后的图表将显示一个更长的客户旅程(两个以上的产品)。
我使用networkD3 R软件包来可视化一个sankeyNetwork,但是我不能按照我的愿望放置条形图。
您是否对Python或R包有任何建议,或者是否有办法(在合理的时间内)自己绘制它?
发布于 2017-10-30 20:07:08
这可能对你的想法来说太简单了,但也许它会有帮助:
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)
https://datascience.stackexchange.com/questions/19976
复制相似问题