R图陡坡曲线

时间:2019-06-30 11:30:29

标签: r plot

我想绘制在直角坐标x=0x=1处具有非常陡峭梯度的曲线。

我试图根据其斜率生成加权绘图点。 但是我没有成功。

enter image description here


以上情节的代码

# Plot points weighted for gradient (My attempt)
ll <- stats::rchisq(100, 1)
lll <- 0.99 + ll
l <- append(ll, lll)

# Definition of curve
x <- 1 - exp(-l)
y <- 1 - stats::pnorm(0.3*stats::qnorm( exp(-l) ) - 0.5)

# Curve through precisely at (x, y) = (0, 0) and (1, 1)
plot(x, y, xlim = c(0, 1), ylim = c(0, 1))

我想要的情节

enter image description here


修改

使用@TavoGLC的答案,我可以完成几乎完美的绘图。在我的程序包中,定义0.3中的数字0.5y <- 1 - stats::pnorm(0.3*stats::qnorm( exp(-l) ) - 0.5) 发生了变化,因此在下面,我使用0.130.19代替{{1 }}和0.3enter image description here

1 个答案:

答案 0 :(得分:1)

我认为将weigths更改为对数维特,可以更好地逼近预期图形。区域范围分为三个区域,最末端区域使用logspace生成的值加权,中间部分使用linspace生成的值加权。

library(pracma)
l0<-logspace(-15, 0, 25)
l2<-linspace(0, 1.5, 25)
l3<-logspace(0,3, 25)

la<-append(l0,l2)
l<-append(la,l3)
# definition of curve
x<- 1-exp(-l)
y <- 1-stats::pnorm(0.3*stats::qnorm( exp(-l ) )-0.5)

plot(x,y,xlim=c(0,1),ylim=c(0,1))

enter image description here

您可以更改logspacelinspace的上下边界以获得更好的结果。希望对您有帮助