r语言中,画出了频率分布直方图,怎么在图上添加概率分布曲线?

2025-02-25 10:31:52
推荐回答(2个)
回答1:

可以用内置的graphic包来画,就是plot()和curve()

也可以用ggplot2来画,后者更灵活。

  1. graphic

# 先生成一组随机数
x <- rnorm(2000)
# 画频率直方图, 分30个bin
hist(x, freq = F, breaks = 30) 
# 再画概率分布曲线
lines(density(x, bw=.5), col="red", lwd=2)

2. ggplot2

# 准备工作, 把x设成一个数据集
library(ggplot2)
data <- data.frame(x = x)
# 生成底层和直方图,概率线的图层
p <- ggplot(data, aes(x = x, y = ..density..))
p <- p + geom_histogram(fill = "navy")
p <- p + geom_density(colour = "green")
p

画出来风格不太一样,看你口味了

回答2:

可以用内置的graphic包来画,就是plot()和curve()
也可以用ggplot2来画,后者更灵活。
graphic

1
2
3
4
5
6

# 先生成一组随机数
x <- rnorm(2000)
# 画频率直方图, 分30个bin
hist(x, freq = F, breaks = 30)
# 再画概率分布曲线
lines(density(x, bw=.5), col="red", lwd=2)

2. ggplot2

1
2
3
4
5
6
7
8

# 准备工作, 把x设成一个数据集
library(ggplot2)
data <- data.frame(x = x)
# 生成底层和直方图,概率线的图层
p <- ggplot(data, aes(x = x, y = ..density..))
p <- p + geom_histogram(fill = "navy")
p <- p + geom_density(colour = "green")
p

画出来风格不太一样,看你口味了