如何在 R 中使用 ggplot2 绘制 ECDF 图?
经验累积分布函数图 (ECDF) 帮助我们可视化一个或多个分布。 ECDF 图是直方图的一个很好的替代方案,它能够显示完整范围的数据,而无需各种参数。
在本文中,我们将讨论如何使用 R 编程语言的 ggplot2 包绘制 ECDF 图。要绘制 ECDF 图,我们使用 R 语言的 ggplot2 包的 stat_ecdf()函数。
Syntax: ggplot( df, aes(x)) + stat_ecdf( geom, col )
Parameters:
- df : determines dataframe used to plot ECDF plot
- geom: determines the shape of plot, i.e., point, step,etc.
- col: determines the color of plot
创建基本的 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()
输出: