0

我刚刚从 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)

我应该如何进一步处理它,我是否必须使用 rug 功能(我正在尝试学习如何使用)?我也可以在上述图表上加上时间戳吗?

编辑:所以我修改了我的命令并使用了:

x <- c(cumsum(rexp(50, 0.2)))
y <- rep(0, length(x))
plot(x,y)
rug(x)

我已经能够得到这个: 修订的情节

同样,我还差 2 个代表点来包含图像。如果只是这样的话,这个结果就可以了。但是,我可以使用一行命令来编辑此结果,如第二张图片所示,并获得如第一张图片所示的结果吗?我真的很想在水平线上而不是整个情节上获得这些刻度线。还是不可能?如果有人知道,请帮忙。

4

2 回答 2

1

ggplot您可以使用.addgeom_rug()地毯到情节中。首先需要将数据制作成data.frame

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

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

地毯相当短(它似乎是图形高度的一部分并且不可控)。

相反的方法是使用geom_vlinewhich 将给出 y 轴全长的线条

#ggplot(data.frame(x), aes(xintercept = x)) + geom_vline() #doesn't work
ggplot(data.frame(x)) + geom_vline(aes(xintercept = x))
于 2018-04-03T13:51:51.537 回答
0

rug()只需要一个值向量来描述在哪里绘制刻度线(地毯)。x在x 轴上绘制值的情况下,这些值形成rug函数的输入数据。键入?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)

在此处输入图像描述

于 2018-04-03T11:11:17.733 回答