r - ggplot2中的密度图和直方图
问题描述
我有以下数据框
x1<-data.frame(n = rnorm(1000000, mean=0, sd=1), nombre= "x1")
x2<-data.frame(n=rnorm(1500000, mean=3, sd=1), nombre= "x2")
x<-rbind(x1, x2)
ggplot(x, aes(n, fill=nombre))+
geom_histogram(alpha=0.5, binwidth=0.25, position = "identity")+
geom_density()
我想将密度图叠加到直方图上,但它看起来就像 0 中的一条细线
解决方案
您需要获取geom_histogram
并geom_density
共享同一轴。在这种情况下,我通过将aes(y=..density)
术语添加到geom_histogram
. 还要注意一些不同的美学以避免过度绘制,以便我们能够更清楚地看到两个几何:
ggplot(x, aes(n, fill=nombre))+
geom_histogram(aes(y=..density..), color='gray50',
alpha=0.2, binwidth=0.25, position = "identity")+
geom_density(alpha=0.2)
正如最初指定的那样,美学fill=
适用于两者,因此您有直方图和密度几何显示您根据“x1”和“x2”分组的分布。如果您想要 x1 和 x2 的组合集的密度几何,只需指定fill=
直方图几何的美学:
ggplot(x, aes(n))+
geom_histogram(aes(y=..density.., fill=nombre),
color='gray50', alpha=0.2,
binwidth=0.25, position = "identity")+
geom_density(alpha=0.2)
推荐阅读
- azure - 克服 Azure 应用程序网关上的 40 个前端端口限制
- java - 可以将@Component 用于任何实用程序类吗?
- ios - 如何使用 Swift 中的自动生成键从情节提要中设置的 UITextView 中检索文本?
- android - 有没有办法在 Android 10+ 中强制 Wi-Fi 重新连接/断开连接?
- java - JavaFX 缩放不会调整父容器中的组件大小
- c - 使用 calloc() 分配内存后释放内存以创建字符串数组
- python - 安装本地 Python 包后 Juypter 笔记本中的 ModuleNotFoundError
- r - 添加数据点以平滑 GPS 坐标
- firebase - Firebase 托管错误 - 添加了一个新域并添加了 A 记录,但我已经等待了 24 小时
- spring-security - 记录 org.springframework