首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ggplot绘制反向(互补) ecdf?

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

Stack Overflow用户
提问于 2016-05-14 00:49:48
回答 3查看 4.8K关注 0票数 5

目前,我使用stat_ecdf绘制累积频率图。

这是我使用的代码

代码语言:javascript
复制
    cumu_plot <- ggplot(house_total_year, aes(download_speed, colour = ISP)) + 
                 stat_ecdf(size=1)

然而,我希望ecdf被逆转(互补ecdf)。有什么最简单的方法吗?

干杯!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-14 02:23:14

由于似乎没有更容易的方法来绘制逆的ecdf,下面是我所做的工作,以防有人正在寻找解决方案:

  1. 从ecdf函数中提取信息并将其存储在新列中。 house_total_year_ecdf <- ddply(house_total_year,c("ISP"),变异,ecdf =house_total_year_ecdf#,将标度转换为(0,1) house_total_year_ecdf_2 <- ddply(house_total_year_ecdf,"ISP",mutate,ecdf = scale (ecdf,center=min(ecdf),scale=diff(Ecdf)
  2. 用geom_step和y= 1-ecdf绘制图 House_total_year_ecdf_2(下载速度,1-ecdf,colour =ISP)+ geom_step()

票数 0
EN

Stack Overflow用户

发布于 2016-12-12 19:29:22

来自stat_ecdf的帮助页:

计算变量 X X在数据中 是 累积密度对应x

因此,这是可行的:

代码语言:javascript
复制
p <- ggplot(dataframe_with_column_Z, aes(x=Z))

p + geom_line(aes(y = 1 - ..y..), stat='ecdf')

票数 19
EN

Stack Overflow用户

发布于 2020-08-17 02:11:56

在这种情况下,如果您想继续使用该包,可以将其添加到aes()中:

代码语言:javascript
复制
y = 1 - ..y..

那是,

代码语言:javascript
复制
cumu_plot <- ggplot(house_total_year, aes(download_speed, colour = ISP, y = 1 - ..y..)) + stat_ecdf(size=1)

在我的例子中,我提出了以下内容:

代码语言:javascript
复制
ecdf_gg3 <- ggplot(sim_output_A.m, aes(x=loss, color=plan, y = 1 - ..y..)) +
  stat_ecdf(show.legend=FALSE) +
  labs(
    title="Simulated Loss Output",
    x = "Loss amount",
    y = "Probability of exceeding amount")+
  scale_x_continuous(labels = dollar_format())+
  scale_y_continuous(labels = percent_format()) +
  scale_fill_viridis(discrete=TRUE)+
  scale_color_viridis(discrete=TRUE)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37221303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档