微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ggplot2中将密度图覆盖到每个现有的构面包裹密度图?

如何解决在ggplot2中将密度图覆盖到每个现有的构面包裹密度图?

我有一个大约37000行的数据框,其中包含字符串格式的“名称”和posixct格式的“ UTCDateTime”,并使用它来生成名称分组的时间面封装的密度图:

enter image description here

我也有一个单独的posixct日期时间数据和完全不同的数据帧的密度图:

enter image description here

我想将此第二个密度图覆盖在第一个密度图的每个单独的facet_wrapped图上。有没有办法做到这一点?通常,如果我有要进行面包装的任何类型的图,并且要在面包装的每个面上叠加的另一种类型相同但数据不同的图,该如何做?

解决方法

从理论上讲,这应该很简单,因为在第二个数据帧中没有要刻面的列。下面的示例:

library(ggplot2)

ggplot(iris,aes(Sepal.Width)) +
  geom_density(aes(fill = Species)) +
  geom_density(data = faithful,aes(x = eruptions)) +
  facet_wrap(~ Species)

reprex package(v0.3.0)于2020-08-12创建

编辑:要针对两种类型的数据获得相同比例的密度,可以使用after_stat() *使用计算出的变量:

ggplot(iris,aes(Sepal.Width)) +
  geom_density(aes(y = after_stat(scaled),fill = Species)) +
  geom_density(data = faithful,aes(x = eruptions,y = after_stat(scaled))) +
  facet_wrap(~ Species)

*在ggplot2 v3.3.0之前,还有stat(variable)...variable...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。