如何使cdf图更平滑并标记y轴

时间:2015-03-10 05:04:33

标签: r ggplot2 ecdf

我读了参数" data1"和" data2"从文件和使用此代码绘制cdf但我有两个问题:

  1. 让数字更流畅
  2. 将Y轴标记为CDF
  3. 请注意,此代码是正确的,但我需要进行一些修改。

    df <- data.frame(x = c(data1, data2), ggg=factor(rep(1:2, c(19365,19365))))
    
    ggplot(df, aes(x, colour = ggg)) + 
      stat_ecdf() + 
      labs(x='Time (ms)', ggg='CDF', fill='') + 
      theme_bw()+
      theme(panel.grid.major = element_line(colour = 'grey'),
            panel.border = element_rect(colour = 'black'),
            axis.line = element_blank(),
            panel.background = element_blank(),
            legend.direction='vertical',
            legend.position = c(1, 0.5),
            legend.justification = c(1, 0.5),
            legend.background = element_rect(colour = NA)) +
      scale_colour_hue(name='', labels=c('IEEE 802.11p','Our protocol'))
    

1 个答案:

答案 0 :(得分:0)

经验分布函数总是一个阶梯函数,你不应该以任何方式平滑它。话虽如此,您可以使用ecdf获取经验分布函数的值。如果你想对结果做任何平滑(这不建议),你可以。

require(dplyr)
res <- df %>% 
  group_by(ggg) %>%
  do(data.frame(x = sort(.$x), 
                ecdf = ecdf(.$x)(sort(.$x))))
ggplot(res, aes(x, ecdf, colour = ggg)) + geom_step()

要重新标记y轴,您可以使用

labs(x='Time (ms)', y='CDF')