R语言 在y上绘制随机数,x是范围

lstz6jyr  于 2023-11-14  发布在  其他
关注(0)|答案(3)|浏览(158)

这个问题是来自交叉验证的migrated,因为它可以在Stack Overflow. Migrated上回答2天前。
我想在0-180范围内生成50个随机值。我所做的是:

a=runif(50,min=0,max=180)

字符串
现在我想要这个情节:x轴是0-180的范围,y轴只是一个单一的值(1),显示一个点,其中0-180的数字存在于“a”集合中,如果没有,就什么也没有。
我需要为x轴生成数字0-180吗?或者R可以只使用“a”集来完成吗?如果我做plot(a),我会得到一个散点图,其中x是索引,y是值。
x1c 0d1x的数据

4urapxun

4urapxun1#

如果你想要一个类似的例子,这里是:

x <- runif(50, 0, 180)

# make an empty plot
plot.new()
plot.window(xlim = c(0,185), ylim = c(0,2), xaxs = "i")

# add grid lines
abline(h = 1, col = "gray", lwd = 2)
abline(v = c(0,90,180), col = "gray", lwd = 2)

# add points
points(x, rep(1, length(x)), pch = 19, cex = 1.5)

# add axes
axis(1, at = c(0,90,180), font = 2, cex.axis = 2, tck = 0)
box(bty = "L", lwd = 3)

字符串


的数据

qf9go6mv

qf9go6mv2#

首先准备一个空图:

plot(c(0,180),c(1,1),type="n",yaxt="n",xlab="",ylab="")

字符串
(The type="n"参数确保不绘制任何内容。我们使用yaxt="n"来抑制垂直轴。)
然后将这些点以常数$y$值1相加:

points(a,rep(1,length(a)),pch=19)


x1c 0d1x的数据
当然,纵横比可以改进(最容易的方法是在打开图形设备时指定高度和宽度,例如使用png(),在绘制完成后需要使用dev.off()关闭)。我们可以改变图周围的空白;看看?par

qkf9rpyu

qkf9rpyu3#

根据您希望它与给定示例的精确程度,代码可以非常简单。

dev.new(width=5, height=3)
stripchart(a, pch=16, xaxp=c(0, 180, 2), xlim=c(0, 180), xaxs="i")
grid(nx=4, ny=2, col="#00000044", lty=1)

字符串


的数据
使用stripchart()作为基础可能是明智的,如果你想比较多个样本。例如:

set.seed(1)
l <- list(a=a, b=runif(10, min=60, max=240))
dev.new(width=5, height=3)
stripchart(l, pch=16, xaxp=c(0, 240, 4), xlim=c(0, 240), ylim=c(0.5, 2.5), xaxs="i")
abline(v=seq.int(0, 240, length.out=5), col="#00000044")
abline(h=1:2, col="#00000044")

相关问题