首页 > 解决方案 > 在 R 中绘制离散 CDF

问题描述

我想在 R 中绘制 CDF,但我遇到了一些问题。我希望它看起来像这样:

在此处输入图像描述

但是我通过使用命令得到了开点和闭点之间的线plot(x,y,type="s") 那么我该如何摆脱这些线呢?

标签: r

解决方案


您可以使用以下方法构建此图:

plot(x, y, pch = 16, ylim = c(-0.03, 1.03), ylab = "CDF") # solid points/graphic settings
points(x[-1], y[-length(y)]) # open points
abline(h = c(0, 1), col = "grey", lty = 2) # horizontal lines

在此处输入图像描述

注意:plot(x,y, type = "s)不会产生像您原来的问题那样的图,而是带有踏板(水平线)立管(垂直线)的阶梯函数:

在此处输入图像描述


数据

library(dplyr)

set.seed(1)
df <- data.frame(x = rpois(30, 3)) %>% 
  dplyr::arrange(x) %>% 
  dplyr::add_count(x) %>% 
  dplyr::distinct(x, .keep_all = T) %>% 
  mutate(y = cumsum(n) / sum(n)) 

x <- df$x
y <- df$y

推荐阅读