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

我第一次遇到这个问题......真的不知道如何解决它,我只是认为我的数据没有订购,但我怎么能轻松订购?
这是我的代码(但没什么特别的):
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)
谢谢大家:)
您需要按照增加绘图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)

但是你会更好有x和y在同一个对象,一个数据帧,只是该行进行排序:
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()函数提供对象时置换行.