如果你可以帮助我,那就太好了: 所以我正在做一个双曲线(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")
感谢所有人:)
答案 0 :(得分:5)
您需要在绘图前增加x
的值来订购数据。例如:
set.seed(1)
x <- runif(50)
y <- 1.2 + (1.4 * x) + (-2.5 * x^2)
plot(x, y)
lines(x, y)
order()
函数可用于生成索引,当应用于变量/对象时,该索引将该对象的值按所需顺序放置(默认情况下增加):
ord <- order(x)
plot(x[ord], [ord], type = "o")
但是,如果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, ])
请注意,order()
用于索引数据,因此我们不会更改原始排序,我们只是在将对象提供给plot()
函数时置换行。