如何使用ggplot绘制反向(互补)ecdf?

Tar*_*ham 4 reverse r ecdf

我目前使用stat_ecdf绘制我的累积频率图.

这是我使用的代码

    cumu_plot <- ggplot(house_total_year, aes(download_speed, colour = ISP)) + 
                 stat_ecdf(size=1)
Run Code Online (Sandbox Code Playgroud)

但是我想要逆转ecdf(补充ecdf).有什么想法最简单的方法吗?

干杯!

小智 14

从stat_ecdf的帮助页面:

计算变量

X

数据中的x

ÿ

累积密度对应x

这样可行:

p <- ggplot(dataframe_with_column_Z, aes(x=Z))

p + geom_line(aes(y = 1 - ..y..), stat='ecdf')
Run Code Online (Sandbox Code Playgroud)

产量


Tar*_*ham 0

由于似乎没有更简单的方法来绘制逆 ecdf,因此如果有人正在寻找解决方案,我所做的就是:

  1. 从 ecdf 函数中提取信息并将其存储在新列中

    house_total_year_ecdf <- ddply(house_total_year, c("ISP"), mutate,
          ecdf = ecdf(download_speed)(unique(download_speed))*length(download_speed))
    
    #transforming the scale to (0,1)
    house_total_year_ecdf_2 <- ddply(house_total_year_ecdf, "ISP", mutate, 
          ecdf =scale(ecdf,center=min(ecdf),scale=diff(range(ecdf))))
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 geom_step 和 y = 1-ecdf 绘制图形

    ggplot(house_total_year_ecdf_2, aes(download_speed,1-ecdf, colour = ISP)) +
    geom_step()
    
    Run Code Online (Sandbox Code Playgroud)

在此输入图像描述