将总计数作为水平线添加到facet_grid()中的直方图

时间:2013-11-01 18:33:39

标签: r ggplot2 histogram facet

数据:

我有一个包含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

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

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

Frequency histogram of Tenure by # of Customers

显然,这里有混合的信息分布,但效果未知。首先,我以为我会用视觉检查时域效果。通过使用facet,我可以按年提供频率分布的连续直方图,覆盖每年的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..)

其中包含以下内容:

enter image description here

重新创建分面图的问题:

  • 我想要做的是在每个方面添加一条水平线(或其他单个标记)来表示 每年的客户启动总数。这可以在一个方面完成 情节?

  • 我想添加一个横跨小平面的附加轴到
    标记所有年份的月数(1到175)。我是否正在尝试使用ggplot来尝试这样做(即,因为每个方面都是它自己的情节,所以即使可能,也可以将月份标记对齐所有方面)?我没有看到任何相关的例子来做这样的事情。

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

菲利普

0 个答案:

没有答案