r - R(ggplot2)中的密度图,按变量着色,返回与直方图和频率图非常不同的分布?
问题描述
我已经在这里梳理了几个问题,但我似乎无法弄清楚我的密度图发生了什么。
我有一组放射性碳日期,这些日期归因于不同的文化。我需要通过时间显示日期的频率,但按文化区分日期。堆叠直方图可以完成这项工作(图 1),但通常不鼓励使用它们,所以这是不可能的,但我想要比频率图更平滑的东西(图 2)。
图 1:直方图
图 2:频率图
当我生成一个按培养物着色的密度图(图 3)时,y 轴上培养物的相对分布与它们的计数相比发生了巨大变化。例如,在密度图中,蓝色的密度曲线远高于紫色;然而,在直方图中,我们可以看到紫色组的日期要多得多。
图 3:密度图
我的代码有问题吗(见下文)?或者也许我需要以某种方式缩放密度曲线?还是我不了解密度图?(免责声明:我的统计知识相当薄弱)
提前致谢!
ggplot(test, aes(x=CalBP))+
theme_tufte(base_family="sans")+
theme(axis.line=element_line(), axis.text=element_text(color="black")) +
theme(legend.position="none") +
theme(text=element_text(size=14)) +
geom_density(aes(color=factor(Culture), fill=factor(Culture)), alpha = 0.5) +
scale_x_reverse() +
labs(x="Cal. B.P.") +
ylab(expression("Density")) +
coord_cartesian(xlim = c(4773, 225)) +
scale_fill_manual(values=c("#cf9045", "#ebe332", "#5f9388", "#6abeef", "#9d88d6")) +
scale_color_manual(values=c("#cf9045", "#ebe332", "#5f9388", "#6abeef", "#9d88d6"))
解决方案
不同之处在于对密度图进行了缩放,使得曲线下的总面积为 1。它的功能是对概率密度函数进行建模,该函数(根据定义)具有面积 1。
如果数据中的每个组都有相同数量的观察值,那么密度图和直方图之间的唯一区别就是 y 轴。当您有不同数量的观察值时,密度图会对此进行归一化(每个区域的总面积为 1),而对于具有更多观察值的组,直方图的条形要高得多。
在基础 R 中,您可以通过设置在直方图中修复此问题freq = FALSE
,但我没有看到按比例放大到直方图的密度图 - 忽略相对样本大小的影响通常更有趣。
推荐阅读
- kaggle - 如何在无需注册的情况下快速从 Kaggle notebook 获取代码?
- php - PUT 不更新实体
- php - 以编程方式发送 Ninja Forms 通知
- mysql - mysqli 查询带有编码的多个案例
- c# - 如何禁用恢复 Visual Studio 安装程序项目的丢失文件?
- php - 替换数组键并用它们移动值
- mysql - 如何仅对具有正支付总额的记录进行分组?
- json - 如何正确将 JSON 导入 Excel
- kubernetes - Kubernetes - 在容器之间共享单个文件(在同一个 pod 内)
- powerbi - 计算 RELADTABLE 的 MAX