对于R中的指数分布,如何使用rug函数?

对于R中的指数分布,如何使用rug函数?,r,plot,ggplot2,exponential-distribution,R,Plot,Ggplot2,Exponential Distribution,我刚从R开始,如果我的问题很基本,我再次道歉。我想在x轴上画出分布呈指数分布的时间间隔,每次间隔结束时都有一个记号。如果我有一组时间,比如说0.2,0.8,0.9,1.0,那么x轴上的记号分别是0.2,0.8,0.9和1。对于大数据样本,我希望我的图表看起来像- 所以用了以后, set.seed(1) x <- rexp(50, 0.2) 我应该如何进一步,我可能必须使用地毯的功能,我正在努力学习如何使用?我可以在上面的图表上贴上时间戳吗 编辑:因此我修改了命令并使用: x <-

我刚从R开始,如果我的问题很基本,我再次道歉。我想在x轴上画出分布呈指数分布的时间间隔,每次间隔结束时都有一个记号。如果我有一组时间,比如说0.2,0.8,0.9,1.0,那么x轴上的记号分别是0.2,0.8,0.9和1。对于大数据样本,我希望我的图表看起来像-

所以用了以后,

set.seed(1)
x <- rexp(50, 0.2)
我应该如何进一步,我可能必须使用地毯的功能,我正在努力学习如何使用?我可以在上面的图表上贴上时间戳吗

编辑:因此我修改了命令并使用:

x <- c(cumsum(rexp(50, 0.2)))
y <- rep(0, length(x))
plot(x,y)
rug(x)
我已经能够得到这个:

再次我是2个代表点短,包括图像尚未。如果只是这样的话,这个结果就起作用了。但是,是否有一行命令可以用于编辑第二张图片中显示的结果,并获得第一张图片中显示的结果?我真的很想在水平线上得到这些记号,而不是整个图。还是不可能?如果有人知道,请帮忙

rug只需要一个值向量来描述在何处绘制标记rug。如果在x轴上绘制值x,则这些值构成rug功能的输入数据。键入?地毯以获得进一步帮助

# generate y values
y <- rexp(50, 0.2)
# split plotting area into two columns - optional
par(mfrow = c(1, 2))
plot(x, y)
rug(x)
# plot with both axes in log scale to show that rug adjusts to axes scale
plot(x, y, log = "xy")
rug(x)
使用ggplot,您可以使用geom_rug将地毯添加到绘图中。首先,需要将数据制作成data.frame

library("tidyverse")
set.seed(1)
x <- rexp(50, 0.2)

ggplot(data.frame(x), aes(x = x)) + geom_rug()

将x放入data.frame中,可以在ggplot中使用geom_rug。时间戳与地毯有什么关系?你能解释一下代码@RichardTelford吗?我刚从R开始,我甚至对简单的命令都感到困惑。时间戳和地毯没有关系,我只是想大声说出来,反正没关系。嗨@nya,非常感谢你的评论,这让事情变得更清楚了。不过,在进一步澄清后,我已修改了我的问题。如果你能帮忙,请告诉我?
#ggplot(data.frame(x), aes(xintercept = x)) + geom_vline() #doesn't work
ggplot(data.frame(x)) + geom_vline(aes(xintercept = x))