包含在多个ggplot方面的数据子集

时间:2011-02-11 17:01:17

标签: r ggplot2 subset facet

我有人口和该人口的样本。我已经使用ggplot2及其faceting选项对它们进行了一些比较,但我发现将样本放在自己的方面会扭曲人口图(不过稍微)。有没有办法对图表进行分面,以便所有记录都在人口图中,而只是第二个图中的采样记录?

1 个答案:

答案 0 :(得分:4)

马特,

如果我理解你的问题 - 你想要一个多面图,其中一个面板包含你的所有数据,后面的面只包含第一个图的一部分?

可能有一种更简洁的方法,但您可以创建一个新的data.frame对象,其中包含与每个子集对应的相应分面变量。考虑:

library(ggplot2)
df <- data.frame(x = rnorm(100), y = rnorm(100), sub = sample(letters[1:5], 100, TRUE))

df2 <-  rbind(
    cbind(df, faceter = "Whole Sample")
    , cbind(df[df$sub == "a" ,], faceter = "Subset A")
    #other subsets go here...
)

qplot(x,y, data = df2) + facet_wrap(~ faceter)

如果我误解了你的问题,请告诉我。

-Chase