首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R (ggplot2)中的密度图,通过变量着色,返回与直方图和频率图非常不同的分布?

R (ggplot2)中的密度图,通过变量着色,返回与直方图和频率图非常不同的分布?
EN

Stack Overflow用户
提问于 2018-06-26 03:22:03
回答 1查看 779关注 0票数 1

我已经梳理了这里的几个问题,我似乎不能弄清楚我的密度图发生了什么。

我有一套属于不同文化的放射性碳测年。我需要通过时间显示日期的频率,但要按文化区分日期。堆叠的直方图可以完成这项工作(图1),但通常不鼓励使用它们,所以这是不可能的,但我想要比频率图更平滑的图(图2)。

图1:直方图

图2:频率图

当我制作一个由培养物着色的密度图(图3)时,培养物在y轴上的相对分布与它们的计数有很大的不同。例如,在密度图中,蓝色的密度曲线远远高于紫色的密度曲线;然而,在直方图中,我们可以看到有更多的日期归因于紫色组。

图3:密度图

我的代码是不是做错了什么(见下文)?或者,也许我需要以某种方式缩放密度曲线?或者是关于密度图有什么我不理解的?(免责声明:我的统计知识相当薄弱)

提前感谢!

代码语言:javascript
复制
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")) 
EN

回答 1

Stack Overflow用户

发布于 2018-06-26 03:36:41

不同之处在于,密度图的缩放使得曲线下的总面积为1。它的功能是对概率密度函数进行建模,根据定义,概率密度函数的面积为1。

如果数据中的每个组都有相同数量的观察值,那么密度图和直方图之间的唯一区别将是y轴。当您有不同数量的观察值时,密度图将为此进行归一化(每个将具有总面积1),而直方图的条形图对于观察值较多的组来说要高得多。

在基数R中,可以通过设置freq = FALSE在直方图中修复这个问题,但我还没有看到密度图放大到直方图-忽略相对样本大小的影响通常更有趣。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51030540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档