【发布时间】:2017-11-20 15:20:54
【问题描述】:
我有一个数据框 (df),其中包含三个分类变量,分别是 site、purchase 和 happycustomer。
我想使用 gglot2 的 geom_tile 函数来创建客户体验热图。我希望网站在 x 轴上,在 y 轴上购买,并以happycustomer 作为填充。我希望热图能够显示按站点和购买分组的快乐客户的百分比(即,happycustomer 的值为 y 的客户)。
我的问题是,目前剧情中既有快乐的顾客,也有不快乐的顾客。
任何帮助将不胜感激。
起点(df):
df <- data.frame(site=c("GA","NY","BO","NY","BO","NY","BO","NY","BO","GA","NY","GA","NY","NY","NY"),purchase=c("a1","a2","a1","a1","a3","a1","a1","a3","a1","a2","a1","a2","a1","a2","a1"),happycustomer=c("n","y","n","y","y","y","n","y","n","y","y","y","n","y","n"))
当前代码:
library(ggplot2)
library(dplyr)
df %>%
group_by(site, purchase,happycustomer) %>%
summarize(bin = sum(happycustomer==happycustomer)) %>%
group_by(site,happycustomer) %>%
mutate(bin_per = (bin/sum(bin)*100)) %>%
ggplot(aes(site,purchase)) + geom_tile(aes(fill = bin_per),colour = "white") + geom_text(aes(label = round(bin_per, 1))) +
scale_fill_gradient(low = "blue", high = "red")
【问题讨论】:
标签: r