我知道,我们通常这样做:[R绘制频率分布
x=c(rep(0.3,100),rep(0.5,700))
plot(table(x))
但是,我们只能得到图中的几个点或垂直线。
如果我想要0.3以上的100个点和0.5以上的700个点,我该怎么办?
我知道,我们通常这样做:[R绘制频率分布
x=c(rep(0.3,100),rep(0.5,700))
plot(table(x))
但是,我们只能得到图中的几个点或垂直线。
如果我想要0.3以上的100个点和0.5以上的700个点,我该怎么办?
是这样的吗?
x <- c(rep(.3,100), rep(.5, 700))
y <- c(seq(0,1, length.out=100), seq(0,1,length.out=700))
plot(x,y)
编辑:(以下OP的评论)
在这种情况下,这样的事情应该工作。
x <- rep(seq(1, 10)/10, seq(100, 1000, by=100))
x.t <- as.matrix(table(x))
y <- unlist(apply(x.t, 1, function(x) seq(1,x)))
plot(x,y)
对于较小的数字(数),可以使用stripchart
与method="stack"
这样的:
stripchart(c(rep(0.3,10),rep(0.5,70)), pch=19, method="stack", ylim=c(0,100))
但s tripchart不适用于700个点。
编辑:
从包装TeachingDemos的dots()
功能可能是你想要什么:
require(TeachingDemos)
dots(x)
你的意思,而不是从(0.5,0)行至(0.5, 700)你想要700个点,而不是从(0.3,0)到(0.3,100)的线你想要100个点? – Spacedman