R语言中,如何在直方图中添加正态曲线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言中,如何在直方图中添加正态曲线相关的知识,希望对你有一定的参考价值。
如题,我有一串数据大约是20个,画好了直方图,但是添加正态曲线lines(density(b),col="red", lwd =3)之后,图像上出现了一条与x轴重合的红线,请问是为什么?要怎么才能添加正态曲线?(PS:我求了回归标准化残差,现在要添加正态曲线)
楼主可以在生成hist()的时候,调整一下ylim()和probability=TRUE,然后再用lines(density())去试试看 参考技术A hist(freq=F)即可 参考技术B 把数据和代码贴出来追问如果有看不清的我贴过一张
直接copy超字数了只能贴图了
通常情况下是你的lines 函数用错了。
lines需要x y 作为坐标
这样:
lines(x,y)
如果你希望添加正态分布曲线
x=seq(-5,5,0.01)
lines(x,dnorm(x))
----
你应该想添加 频数曲线吧。你得有频数数据。 density 返回的值是 统计值。
不是坐标值,不能用来画lines。
r语言中,画出了频率分布直方图,怎么在图上添加概率分布曲线?
可以用内置的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
画出来风格不太一样,看你口味了
也可以用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
画出来风格不太一样,看你口味了
以上是关于R语言中,如何在直方图中添加正态曲线的主要内容,如果未能解决你的问题,请参考以下文章
R语言自定义编写函数生成学生化残差的直方图(dist of studentized residuals),并叠加标准正太曲线核密度曲线轴须图rug曲线检验模型是否满足正态性(normality)
R语言plotly可视化:plotly可视化多个数据集归一化直方图(historgram)并在直方图中添加密度曲线kde(核密度估计的密度曲线density plot)
R语言plotly可视化:plotly可视化归一化的直方图(historgram)并在直方图中添加密度曲线kde并在直方图的底部边缘使用geom_rug函数添加边缘轴须图
R语言plotly可视化:可视化多个数据集归一化直方图(historgram)并在直方图中添加密度曲线kde设置不同的直方图使用不同的分箱大小(bin size)在直方图的底部边缘添加边缘轴须图