在每个 facet_wrap 内包含所有数据的图形

5

Dataframe (borrowed from here):

df.test <- data.frame(id = rep(1:6, each = 50), x = rnorm(50*6, mean = 10, sd = 5), 
                 y = rnorm(50*6, mean = 20, sd = 10), 
                 z = rnorm(50*6, mean = 30, sd = 15))

剧情简介:

library(ggplot2)
ggplot(df.test, aes(x)) + geom_histogram() + facet_wrap(~id)

寻求帮助: 我想要将整个数据集的直方图叠加到每个分面上,以便立即比较每个分面与总数据集。如果可能的话,我希望整个数据集显示为一个 freq_poly() 图形:

ggplot(df.test, aes(x)) + geom_freqpoly()

enter image description here

2个回答

6

您可以在调用 geom_freqpoly 时排除 facetting 变量。

ggplot(df.test, aes(x)) + geom_histogram() + facet_wrap(~id) +
  geom_freqpoly(data = df.test[, "x", drop = FALSE], col = "red")

enter image description here


3
以下代码从geom_freqpoly数据中删除了id列。
ggplot(df.test, aes(x)) + geom_histogram() + facet_wrap(~id) + 
  geom_freqpoly(data=df.test[-1])

这会使它在所有方面都可见:

这是图片描述


很奇怪的是,尽管这段代码在测试数据集上运行得非常好,但当我将其应用于我的数据集时,“geom_freqpoly”没有包括完整的数据集,而是包括了分面,而@markus的代码则包括了完整的数据集。 - SorenK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接