线而不是点(R)不那么容易

Boo*_*Boo 0 plot r

如果你可以帮助我会很棒:所以我正在做一个双曲线(SDT)图,我有一个问题:这里我的图: 点 type =

我第一次遇到这个问题......真的不知道如何解决它,我只是认为我的数据没有订购,但我怎么能轻松订购?

这是我的代码(但没什么特别的):

x = TDSindice2$Hit
mean = mean(x)
sd = sd(x)

y = dnorm(x,mean,sd)

plot(x,y, col = "red")


x = TDSindice2$Fa
mean = mean(x)
sd = sd(x)

y = dnorm(x,mean,sd)
par(new=TRUE)

plot(x,y ,type = "l", col ="blue")
Run Code Online (Sandbox Code Playgroud)

谢谢大家:)

Rei*_*son 5

您需要按照增加绘图x 前的值来订购数据.例如:

set.seed(1)
x <- runif(50)
y <- 1.2 + (1.4 * x) + (-2.5 * x^2)

plot(x, y)
lines(x, y)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

order()函数可用于生成索引,当应用于变量/对象时,该索引将该对象的值按所需顺序放置(默认情况下增加):

ord <- order(x)
plot(x[ord], [ord], type = "o")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是你会更好有xy在同一个对象,一个数据帧,只是该行进行排序:

dat <- data.frame(x = x, y = y)
ord <- with(dat, order(x))
plot(y ~ x, data = dat[ord, ], type = "o") ## or
## lines(y ~ x, data = dat[ord, ])
Run Code Online (Sandbox Code Playgroud)

注意,order()它用于索引数据因此我们不会更改原始顺序,我们只是在我们向plot()函数提供对象时置换行.