2

我正在尝试为威布尔概率图创建一个基础图。我一直在探索survivalR 中的包,但还没有找到我需要的确切工具。到目前为止,我已经能够手动重新创建我需要的情节(这很糟糕 - 大量的硬编码,它根本不灵活而且看起来很糟糕)。

我的猜测是有一个包可以用网格线创建这个基本图,我只是还没有发现它。

这张图片是我需要绘制的,它被称为“威布尔概率绘图纸”

威布尔纸

ggplot2包内或survival包内(或其他任何基本 R 图形)是否有方法来创建此图?从那里,我可以覆盖这些点。

请记住,我最终创建的图形需要与Shiny. 谢谢你。

作为参考,这是我ggplot2手动创建的丑陋情节。

current_plot

另外,请注意我无法提供可重现的代码示例,因为这是一个非常复杂的问题,我正在寻找一个基本的可重现基础图。

更新

我正在寻找制作这个情节的内容,这里有一些我如何手工创建我的例子,请注意它不是完全可重现的。

以下是我设置 y 轴刻度线的方法:

yticks <- c(log(-log(1-0.0001)), log(-log(1-0.001)), log(-log(1-0.005)), log(-log(1-0.010)), log(-log(1-0.05)), log(-log(1-0.10)),
        log(-log(1-0.50)), log(-log(1-0.90)), log(-log(1-0.99)))

以下是 y 标签:

ylabs <- c('0.01','0.1','0.5','1','5','10','50','90','99')

以下是创建次要网格线的方法:

yminorticks <- c(
  log(-log(1-0.00001)),log(-log(1-0.00002)),log(-log(1-0.00003)),log(-log(1-0.00004)),log(-log(1-0.00005)),log(-log(1-0.00006)),log(-log(1-0.00007)),log(-log(1-0.00008)),log(-log(1-0.00009)),
  log(-log(1-0.0001 )),log(-log(1-0.0002)),log(-log(1-0.0003)),log(-log(1-0.0004)),log(-log(1-0.0005)),log(-log(1-0.0006)),log(-log(1-0.0007)),log(-log(1-0.0008)),log(-log(1-0.0009)),
  log(-log(1-0.001)),log(-log(1-0.002)),log(-log(1-0.003)),log(-log(1-0.004)),log(-log(1-0.005)),log(-log(1-0.006)),log(-log(1-0.007)),log(-log(1-0.008)),log(-log(1-0.009)),
  log(-log(1-0.01)),log(-log(1-0.02)),log(-log(1-0.03)),log(-log(1-0.04)),log(-log(1-0.05)),log(-log(1-0.06)),log(-log(1-0.07)),log(-log(1-0.08)),log(-log(1-0.09)),
  log(-log(1-0.10)),log(-log(1-0.20)),log(-log(1-0.30)),log(-log(1-0.40)),log(-log(1-0.50)),log(-log(1-0.60)),log(-log(1-0.70)),log(-log(1-0.80)),log(-log(1-0.90)))
4

1 回答 1

1

有一个包weibullR,它将帮助您绘制不可靠性与时间的关系。

library(WeibullR) 

df <- data.frame(time = c(10000, 10000, 20000, 20000, 30000, 30000, 30000, 30000, 
                          40000, 50000, 50000, 60000, 70000, 70000, 70000, 70000, 
                          80000, 80000, 80000, 80000, 90000, 90000, 100000), 
                 event = rep(1, 23)) 

weibl <- 1- wblr(df, 
                 col="darkgreen",
                 label="censored dataset",
                 dist = "weibull2p", 
                 ylab = "check") 

weibl_fit <- wblr.fit(weR, col = "Red", method.fit = "rr") 

data <- wblr.conf(weibl_fit, col="blue") 

plot(data)
于 2019-01-21T04:58:01.567 回答