---
title: "R 语言中plot()函数和ecdf()函数的使用示例"
author: "cnliutz"
date: "2025-05-18"
output:
html_document:
df_print: paged
---
以下是 R 语言中plot()函数和ecdf()函数的使用示例,包含基础用法和可视化展示:
# 1. plot()函数基础用法示例
```{r}
# 示例1: 绘制散点图
x <- 1:10
y <- x^2
plot(x, y, main="散点图示例", xlab="X轴", ylab="Y轴", pch=16, col="blue")
# 示例2: 绘制折线图
x <- seq(0, 2*pi, length.out=100)
y <- sin(x)
plot(x, y, type="l", main="正弦曲线", xlab="角度(弧度)", ylab="正弦值", col="red")
# 示例3: 添加点和线到现有图表
points(x[1:20], y[1:20], pch=19, col="green") # 添加绿色点
lines(x[21:40], y[21:40], lwd=2, col="purple") # 添加紫色线
# 示例4: 绘制箱线图
data <- list(组A=rnorm(50, 5, 1), 组B=rnorm(50, 7, 1.5))
boxplot(data, main="箱线图比较", ylab="数值")
```
## 2. ecdf()累积分布函数示例
```{r}
# 生成随机数据
set.seed(123) # 设置随机种子确保结果可重现
data <- rnorm(1000, mean=0, sd=1) # 生成1000个正态分布随机数
# 计算经验累积分布函数(ECDF)
empirical_cdf <- ecdf(data)
# 查看特定值的累积概率
print(paste("x <= 0的概率:", empirical_cdf(0))) # 约为0.5
print(paste("x <= 1.96的概率:", empirical_cdf(1.96))) # 约为0.975
# 绘制ECDF图
plot(empirical_cdf,
main="正态分布的经验累积分布函数",
xlab="x值",
ylab="累积概率",
col="blue",
lwd=2)
# 添加理论CDF曲线作为对比
curve(pnorm(x, mean=0, sd=1),
add=TRUE,
col="red",
lwd=2,
lty=2) # 添加标准正态分布的理论CDF曲线
# 添加图例
legend("topleft",
legend=c("经验CDF", "理论CDF"),
col=c("blue", "red"),
lwd=2,
lty=c(1, 2))
```
## 3. 自定义 ECDF 图示例
```{r}
# 使用ggplot2绘制更美观的ECDF图
library(ggplot2)
# 生成两组数据进行比较
group1 <- rnorm(100, mean=5, sd=1)
group2 <- rnorm(100, mean=7, sd=1.5)
# 创建数据框
df <- data.frame(
value = c(group1, group2),
group = rep(c("组A", "组B"), each = 100)
)
# 使用ggplot2绘制ECDF图
ggplot(df, aes(x = value, color = group)) +
stat_ecdf(size = 1) +
labs(
title = "两组数据的累积分布函数比较",
x = "数值",
y = "累积概率",
color = "组别"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
axis.title = element_text(size = 12),
legend.position = "bottom"
) +
scale_color_manual(values = c("组A" = "#3366CC", "组B" = "#CC6677"))
```