【发布时间】:2011-06-25 16:52:31
【问题描述】:
我有一个总体和该总体的样本。我使用 ggplot2 和它的 faceting 选项制作了一些比较它们的图,但我突然想到,将样本放在它自己的 facet 中会扭曲总体图(尽管轻微)。有没有办法对图进行分面,以便所有记录都在总体图中,而只有第二个图中的采样记录?
【问题讨论】:
我有一个总体和该总体的样本。我使用 ggplot2 和它的 faceting 选项制作了一些比较它们的图,但我突然想到,将样本放在它自己的 facet 中会扭曲总体图(尽管轻微)。有没有办法对图进行分面,以便所有记录都在总体图中,而只有第二个图中的采样记录?
【问题讨论】:
马特,
如果我正确理解了您的问题 - 您想要一个分面图,其中一个面板包含您的所有数据,而后续分面仅包含第一个图的子集?
可能有一种更简洁的方法来执行此操作,但您可以创建一个新的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)
如果我误解了你的问题,请告诉我。
-追逐
【讨论】: