1

数据:

我有一个包含 4 个变量和大约 300k 行的数据框,其中包括一个唯一的帐户 ID、yyyy-mm-dd 的开始日期、开始年份以及迄今为止客户拥有活动帐户的总月数。下面的数据片段(不要让行号混淆,这显然是一个子集,如果需要更多数据,请告诉我):

 > head(ten.by.id)
    acct.id start_date strt.yr max_ten
1       155 1998-11-01    1998     175
19      902 2001-09-01    2001     143
39      995 2001-09-01    2001     143
59     1014 2000-10-01    2000     153
78     1017 2000-04-01    2000     160
100    1137 2000-11-01    2000     153

问题(为什么我要渲染多面图):

显示所有年份的整个数据集的直方图会呈现以下内容:

按客户数量划分的任期频率直方图

显然,这里的信息是混合分布的,但效果是未知的。首先,我想我会用视觉检查时域效果。通过使用方面,我可以按年份提供频率分布的序列直方图,覆盖每年的 KDE 图。

如果多个分布是随时间发生的某件事的产物,我可以抽查相关的形状变化(即单峰到多峰)。我使用下面的代码来生成这个图:

maxten_time <- ggplot(ten.by.id, aes(max_ten)) 
                      + geom_histogram(colour="grey19", fill="orange", binwidth=2, stat="bin") 
                      + scale_y_continuous(breaks=seq(0,12000,by=100)) 
                      + scale_x_continuous(breaks=seq(0,180,by=45)) 
                      + labs(title ="Serial Distribution of Max Length of Tenure for all Customers by Start Date", x="Max Tenure(months)", y="# of Customers", colour="blue") 
                      + facet_grid(. ~ strt.yr) + geom_density(fill=NA, colour="orange", cex=1) + aes(y = ..count..)

呈现以下内容:

在此处输入图像描述

重建多面图的问题:

  • 我想做的是在每个方面添加一条水平线(或其他一些单一标记),表示每年开始的客户总数。这可以在多面情节中完成吗?

  • 我想添加一个跨越各个方面的附加轴,以
    标记所有年份的月数(1 到 175)。我是否使用 ggplot 来尝试这样做(即,由于每个方面都是其自己的情节,是否可以在所有方面对齐月份标记)?我还没有看到任何关于做这样的事情的相关例子。

目标仅仅是将每个刻面的水平线和跨刻面的轴组合到整个绘图中。任何方向都会有所帮助。

菲利普

4

0 回答 0