计算并生成 R 中的超出概率图?

Hyd*_*dro 1 statistics r probability ggplot2

probability of exceedance我正在尝试在 R 中进行计算。这是包含计算超出概率的详细信息和公式的链接。我尝试使用以下示例代码复制该过程,但是,我距离所附的示例绘图还很遥远。有一次,我想出了如何做到这一点 - 然后我想在具有data.frame多个variables.

library(tidyverse)

A = sample(0:5000, 2500)
A = A[order(A, decreasing = TRUE)]
Rank = 1:2500

DF = data.frame(cbind(A,Rank))
DF$Prob =  100*(DF$Rank/(length(DF$Prob+1)))

ggplot(data = DF, aes(x=Prob, y=A))+
  geom_line() + scale_y_continuous(trans = "log10")
Run Code Online (Sandbox Code Playgroud)

这是我想要制作的情节示例 在此输入图像描述

Rui*_*das 6

问题中的计算公式Prob没有得到很好的实现。它先加 1 DF$Prob,然后在length应该加 1时候取它length

DF <- data.frame(A, Rank)
DF$Prob <-  DF$Rank/(length(DF$Rank) + 1)

ggplot(data = DF, aes(x = Prob, y = A)) +
  geom_line() + 
  scale_x_continuous(breaks = seq(0, 1, by = 0.20),
                     labels = percent) +
  scale_y_continuous(trans = "log10")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

数据创建代码。

我已经更改了数据集示例。
下面的代码是可重现的,因为set.seed使用了并且 的sample概率递减。

set.seed(1234)
A <- sample(0:5000, 2500, prob = exp(seq(10, 0, length.out = 5001)))
A <- A[order(A, decreasing = TRUE)]
Rank <- 1:2500
Run Code Online (Sandbox Code Playgroud)