Отдельная ось для facet_grid () в ggplot - PullRequest
0 голосов
/ 05 мая 2020

У меня есть данные в следующем формате, и я хочу создать сгруппированный столбчатый график, используя facet_grid() в ggplot2.

plot.df = data.frame(m   = factor(rep(1:3, 9)),
                     s   = factor(rep(rep(1:3, each=3),3)),
                     var = factor(rep(1:3, each = 9)),
                     val = rnorm(27))


ggplot(plot.df, aes(x=var, y=val, fill=m)) +
  facet_grid(.~s,scales="free") +
  geom_bar(position="dodge", stat="identity") +
  coord_flip() 

facet plot 1

Теперь один из факторов var имеет другую шкалу, чем другие. Допустим, нам нужен другой масштаб для всех случаев, когда var == 3. Мы можем отделить его от остальных фасетов следующим образом:

plot.df$select = c(rep(0,18),rep(1,9))

ggplot(plot.df, aes(x=var, y=val, fill=m)) +
  facet_grid(select~s,scales="free") +
  geom_bar(position="dodge", stat="identity") +
  coord_flip() 

facet plot 2

Можно ли получить отдельную ось для val для эти две фасеточные группы? Или это вообще считается плохой практикой, и я должен сначала разделить участок на два отдельных участка?

...