我尝试使用facet_wrap
创建一个图表,并在每个包装的方面内部设置facet_grid
,但我无法做到。有什么建议吗?
例如,如果我按月平均2个数量进行逐年比较,我希望 -
我能来的最近的就是这个,
library(ggplot2)
# create dataset
df <- data.frame(
Facet1 = rep(c(1,2,3),24),
Facet2 = c(rep(1,24),rep(2,24)),
Year = rep(c(rep(2012,12),rep(2013,12)),2),
Month = rep(rep(1:12,2),2),
ValueX = sample(0:5,144,replace = TRUE),
ValueY = sample(0:5,144,replace = TRUE)
)
df <- df[!(df$Facet1 == 2 & df$Facet2 == 2),]
ggplot(df, aes(ValueX, ValueY)) + geom_point() +
facet_grid(Facet2 + Year ~ Month)
虽然,我理想的是,这是与此类似的东西(在我看来,类似于ggplot() ... + facet_grid(Year ~ Month) + facet_wrap(Facet2~.)
) -
PS:我认为后者的各个方面更容易区分,更容易通过。评论?任何替代方案?
答案 0 :(得分:1)
也许我误解了你想要做的事,但这不能实现你想要的吗?
ggplot(df, aes(ValueX, ValueY)) + geom_point() +
facet_grid(Facet2 ~ Facet1)
如果您想更改构面标题以匹配您的示例,请查看labeller
的{{1}}参数。
答案 1 :(得分:0)
我不确定你想要做什么,但我觉得在这里使用格子更容易得到你想要的东西:
library(latticeExtra)
xyplot(ValueY~ValueX|Facet1+Facet2,data=df,
between=list(x=2,y=0),
par.settings = ggplot2like(),axis=axis.grid)
答案 2 :(得分:0)