📜  如何在 R 中使用 ggplot2 绘制 ECDF 图?

📅  最后修改于: 2022-05-13 01:54:24.044000             🧑  作者: Mango

如何在 R 中使用 ggplot2 绘制 ECDF 图?

经验累积分布函数图 (ECDF) 帮助我们可视化一个或多个分布。 ECDF 图是直方图的一个很好的替代方案,它能够显示完整范围的数据,而无需各种参数。

在本文中,我们将讨论如何使用 R 编程语言的 ggplot2 包绘制 ECDF 图。要绘制 ECDF 图,我们使用 R 语言的 ggplot2 包的 stat_ecdf()函数。

创建基本的 ECDF 图

在本例中,我们将创建一个基本的 ECDF 图。我们将使用 ggplot()函数和 stat_ecdf()函数绘制 ECDF 图。



R
# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(700, 
                                          mean=800, 
                                          sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
stat_ecdf()


R
# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(700, mean=800, 
                                          sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# col parameter is used to color plot as green
stat_ecdf(col="green")


R
# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(20, mean=800, sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# geom parameter is used to shape plot as step
stat_ecdf(geom="step")


R
# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = c(rnorm(1000, 10, 5), 
                        rnorm(1000, 20, 10),
                        rnorm(1000, 30, 20),
                        rnorm(1000, 40, 30),
                        rnorm(1000, 50, 30)),
                          group = gl(5, 1000))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
# col parameter is used to color plot 
# according to group
ggplot(sample_data, aes(x=x, col=group)) + 
  
# stat_ecdf() function is used to plot ECDF plot
stat_ecdf()


输出:

颜色定制

要更改 ECDF 图的颜色,我们使用 stat_ecdf()函数的 col 参数。我们可以添加任何颜色作为参数 col 的值。我们甚至可以使用颜色的十六进制代码。在这个例子中,我们有一个使用 stat_ecdf()函数制作的绿色 ECDF 图,col 参数为绿色。

电阻

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(700, mean=800, 
                                          sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# col parameter is used to color plot as green
stat_ecdf(col="green")

输出:

形状定制

为了改变 ECDF 图的形状,我们使用 stat_ecdf()函数的 geom 参数。我们可以添加任何形状作为参数 geom 的值。在这个例子中,我们有一个使用 stat_ecdf()函数制作的阶梯形 ECDF 图,geom 参数为“step”。



电阻

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = round(rnorm(20, mean=800, sd=450)))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
ggplot(sample_data, aes(x)) + 
  
# stat_ecdf() function is used to plot ECDF plot
# geom parameter is used to shape plot as step
stat_ecdf(geom="step")

输出:

按组着色的多个 ECDF:

ECDF 图可用于绘制多个分布。要绘制多个 ECDF 图,我们首先创建一个多维数据集,然后使用 aes()函数的 col 参数根据组为它们着色。

这是使用 ggplot2 包的 aes()函数的 col 参数按组绘制的多分布 ECDF 图。为了创建一个多维数据集,我们将使用 rnorm() 函数和 gl()函数将它们分成 5 列,大小为 1000。

电阻

# set seed
set.seed(1234)
  
# create a random data frame 
sample_data <- data.frame(x = c(rnorm(1000, 10, 5), 
                        rnorm(1000, 20, 10),
                        rnorm(1000, 30, 20),
                        rnorm(1000, 40, 30),
                        rnorm(1000, 50, 30)),
                          group = gl(5, 1000))
  
# load library ggplot2
library(ggplot2)
  
# Basic ECDF plot using ggplot package
# col parameter is used to color plot 
# according to group
ggplot(sample_data, aes(x=x, col=group)) + 
  
# stat_ecdf() function is used to plot ECDF plot
stat_ecdf()

输出: