willdemon

  • 2024年8月6日
  • 注册于 2021年3月21日
  • order() 的意思是排序后的元素原来排在第几位,跟是不是 factor 无关。比如,你的 fsort() 排序后第三个元素是 a,它在 f 中是第五个元素。

    f <- c("a", "a", "d", "f", "a")
    
    sort(f)
    [1] "a" "a" "a" "d" "f"
    
    order(f)
    [1] 1 2 5 3 4
  • willdemon polygon会默认填充它围起来的区域,所谓的“围起来”,它的终点坐标和起点坐标会直接连起来。所以你起点坐标标和终点坐标最好是(xmin,0),(xmax,0),中间使用xmin和xmax中间的横坐标以及对应的dnorm(x)的纵坐标。不知道我解释清楚了没。

    你的填充

    中间使用xmin和xmax中间的横坐标以及对应的dnorm(x)的纵坐标。

    这个是没错的,问题在于

    所以你起点坐标标和终点坐标最好是(xmin,0),(xmax,0)

    但是你的起点和终点分别是(xmin,y_low),(xmax,y_high)它自动连起来就是曲线上面的部分了。

    修改一下你的代码,我只加了4行,标注了Jonie名字的那一块,其它的都是你的,你的不合理的我给注释掉了:

    ############## Plot Curve ########################
    mean.plus.sig<-17+4*4.5
    mean.minu.sig<-17-4*4.5
    nor.data<-seq(mean.minu.sig,mean.plus.sig,length=50)
    fx<-dnorm(nor.data,mean = 17,sd=4.5)
    plot(nor.data,fx,type="l",xlim = c(mean.minu.sig-2,mean.plus.sig+2),
         main = "Least 10% test time",xlab = "Test time x",ylab = "f(x)")
    
    ############## Add verticle and horizontal Line ###
    least.ten<-qnorm(p=0.1,mean = 17,sd=4.5)
    abline(h=0,col="gray")
    abline(v=least.ten,lty=2)
    
    ############## Generate shadow coordinate #########
    # Incorrect, because the x coordinate generated by  `nor.data[nor.data<=least.ten]` is much less than the real value "least.ten", and there would be a gap between shadow and verticle line.
    # You can decrease the gap distance by change the legnth parameter at the 4th line above from 50 to a larger value
    # But it is not correct also.
    # fx.ten<-dnorm(least.ten,mean=17,sd=4.5)            # This is not used by you
    # least.data<-nor.data[nor.data<=least.ten]
    # least.fx<-dnorm(least.data,mean = 17,sd=4.5)
    
    ###########Jonie: Generate x coordinate from minimum x to the verticle line ####
    least.data <- seq(mean.minu.sig, least.ten, length = 50)
    least.fx <- dnorm(least.data, mean = 17, sd = 4.5)
    least.data <- c(min(least.data),least.data,max(least.data))
    least.fx<-c(0,least.fx,0)
    
    ###########################################################################
    polygon(x=least.data,y=least.fx,border=NA,col="gray")