facet_wrap log_trans在一列

时间:2016-09-27 08:26:32

标签: r ggplot2

我有一个由facet_grid创建的带有自由比例的2 x 2网格(参见示例)。我希望在网格的第二行中有数字的对数比例,但不是在第一行。

示例代码:

data("mtcars")

ggplot(data = mtcars, aes(y = mpg, x = as.factor(cyl))) + geom_boxplot() + facet_wrap(~ vs + am, nrow = 2, scales = "free")

scale_y_log10()似乎做了一些奇怪的事情。这是可能的,还是我必须使用像grid.arrange这样的东西?

1 个答案:

答案 0 :(得分:3)

我们可以改变然后情节:

library(ggplot2)
library(dplyr)

# manual transform
plotDat <- mtcars %>% 
  mutate(mpg = if_else(vs == 1, log10(mpg), mpg), 
         cyl = as.factor(cyl))

# then plot
ggplot(data = plotDat, aes(y = mpg, x = cyl)) +
  geom_boxplot() +
  facet_wrap(~ vs + am, nrow = 2, scales = "free")