【发布时间】:2017-11-08 21:00:29
【问题描述】:
我用 Inkscape 编辑了这个情节,但是我想知道是否有办法在 ggplot 环境中完成它?
我在网上进行了快速搜索,但没有任何成功。有人可以给我一个解决方法吗?
我真的很感激,因为我认为这是一种非常常见的情节。
这个情节的代码是:
var3 %>%
gather(-(exp:rep), key = "variable", value ="value") %>%
mutate(variable = recode(variable,
diam = "Lesion diameter",
dles = "Lesion density",
sev = "Disease severity")) %>%
ggplot(aes(x = Iso, y = value)) +
geom_boxplot(aes(fill=factor(exp)),
position = position_dodge(width = 0), alpha = 0.5,
width =0.3) +
facet_grid(variable~Cv,
labeller = labeller(Cv = label_both, variable = label_value),
scales = "free")+
scale_y_continuous(labels=scaleFUN)+
theme_juan(9, "top", "center")+
scale_fill_manual(values = c("grey70","grey30"),
labels = c("Exp. 1","Exp. 2"), name = "")
作为var3一个数据框看起来像:
# A tibble: 72 x 7
exp Cv Iso rep sev dles diam
<dbl> <fctr> <fctr> <dbl> <dbl> <dbl> <dbl>
1 1 BMX_Potencia MT 1 0.17262317 1.8924050 0.2400000
2 1 BMX_Potencia MT 2 0.14700000 2.1483445 0.3000000
3 1 BMX_Potencia MT 3 0.01404289 1.3623602 0.2133333
4 1 BMX_Potencia MT 4 0.11933333 1.3160049 0.2900000
【问题讨论】:
-
您应该向reproducible example 提供示例数据和用于制作绘图的代码。
-
这不是构面的真正用例。它们旨在跨组比较相同的变量,即 y 轴应具有相同的单位,最好具有相同的比例。您可以使用 cowplot 等工具创建绘图。
-
另一种选择是使用 grobs(查找
ggplotGrob()、arrangeGrob()和grid.arrange())将 3 个图组合成一个多面板图。 -
我同意@neilfws,但是我发现这个函数是一种方便的方法来对齐绘图并避免使用多个 x 轴,例如当它是一个公共变量作为时间时。
-
对于气象数据,如降水、最高、最低温度,它也适用,如stackoverflow.com/questions/15999304/…
标签: r ggplot2 axis-labels facet-grid