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

Python016

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

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

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

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

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

如果是已知的概率分布,可以先把密度函数赋值到一个变量(比如叫f)里,然后:

curve(f,add=TRUE)

如果从样本(比如保存在x里)估计密度,可以

lines(density(x))

注意画histogram的时候要freq=FALSE