在R中创建Weibull概率纸图

时间:2018-07-02 15:35:22

标签: r ggplot2 shiny weibull survival

我正在尝试为魏布尔概率图创建基础图。我一直在探索R中的survival软件包,但尚未找到我需要的确切工具。到目前为止,我已经能够手动重新创建所需的绘图(这很糟糕-大量的硬编码,一点都不灵活,而且看起来很糟糕)。

我的猜测是,有一个用于创建此基础图的程序包,带有网格线,但我还没有发现它。

这是我需要绘制的图像,它称为"Weibull probability plotting paper"

weibull paper

ggplot2survival包(或其他任何基于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)))

1 个答案:

答案 0 :(得分:0)

有一个软件包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)