我正在尝试使用facet_wrap
创建图表,其中每个包装的面板内部都有一个facet_grid
,但我无法实现。有什么建议吗?
例如,如果我正在进行每月2种数量的同比平均值比较,我希望有:
- 2个面板,分别用于每种数量,
- 每个数量面板内部有12个面板,分别代表每个月份,
- 每个月份面板内部有两个面板,分别代表每年。
我能够接近的最接近的结果是这个:
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:我认为后者中的分面更易辨认和整洁。有评论吗?任何替代方案?
facet_grid
给了你想要的图表,但是你对各个分面之间的距离以及右侧的分面条不满意,希望对它们进行更改? - Rolandfacet_grid(Year ~ Month) + facet_wrap(Facet2~.)
,这样就有两个Facet2
的分面,然后每个分面再细分为 24 个Year¬Month
的分面。目前使用的方法是facet_grid(Facet2 + Year ~ Month)
,虽然最终得到了 48 个分面,但我认为第二张图片的分面更清晰,可读性更好。 - TheComeOnMan