ggplot2 geom用于绘制每个点类型的数量(相对于连续轴)?

时间:2012-11-09 20:16:13

标签: r graph ggplot2 histogram

我正在试图弄清楚如何制作一种特定的图形。它看起来像是在R或ggplot2中非常容易做的事情,但我不能找到合适的关键字来描述它。我浏览了各种各样的geoms并阅读了一些指南,但空手而归。

基本问题是:我有一个电子邮件列表,以及发送它们的日期(定义为自1970年1月1日以来的天数)。我已成功制作了一张图表,其中显示了binwidth 发送的电子邮件;例如如果我每天发送一封电子邮件并将binwidth设置为30天,我会得到一个高度为30的酒吧。

尝试做的是制作如下图:

enter image description here

上图中x轴上的电子邮件数量 ,y轴显示与该数量相对应的电子邮件数量的天数

因此,对于某些示例数据,发送电子邮件的日期列表:

data <- c( 15562,15562,15562,15562,15563,15564,
           15564,15564,15566,15566, 15566,15566)

而不是带有高度为4,1,3和4的条形图(对应于每天的电子邮件数量),我想要一个带有高度为1,1和2的条形图(因为有1条)发送一封电子邮件的日子,发送三封电子邮件的1天,以及发送四封电子邮件的2天)。

就像在示例图中一样,我想要一个连续的x轴。

有谁知道如何构建如上所示的图形?

2 个答案:

答案 0 :(得分:1)

dat <- c(15562,15562,15562,15562,15563,15564,15564,15564,15566,15566,15566,15566)
table(table(dat))
#1 3 4 
#1 1 2

#example with more data
set.seed(42)
dat <- sample(1:500,50000,TRUE)
hist(table(table(dat)),breaks=20)

答案 1 :(得分:1)

有人想要复制Stephen Wolfram personal analytics plots吗? ; - )

不用担心,为了让结果接近Wolfram一直在使用的 Mathematica 式的可视化,我认为最好与lattice一起使用:

library(lattice)
library(latticeExtra)
histogram(~ FSC.H, gvhd10, xlab = "", ylab="", type = "density", 
          col="yellow", nint = 100, scales = list(y=list(draw=F)))
ltext(400,110,col="gray","distribution of emails per day")

enter image description here