считают этот кадр данных:Исключите неиспользуемые уровни фактора в каждой грани в ggplot
df <- data.frame(vars=c(rnorm(3),rnorm(3,2,1), rnorm(3,1,1)),
names=c("a","b","c","a","d","b","c","a","f"),
groups=c(rep("x",3),rep("y",3),rep("z",3)))
Я черчения это с ggplot:
ggplot(df, aes(reorder(names, vars), names)) + geom_bar(stat="identity") +
theme_bw() + facet_grid(groups~., scales="free_x") + coord_flip() + ylab(NULL) + xlab(NULL)
это выглядит как этот
Я сейчас хочу:
- Каждый элемент сетки должен опускать неиспользуемые предметы, например. в сетке «x» не должно быть «d» и «f»
- ось x должна быть значением столбца «vars». Пропорции в каждой сетке должны быть одинаковыми, общая шкала х должна быть отброшена. Я просто хочу, пропорции баров в каждой сетке интактных
- стержни должны быть в порядке убывания в каждой сетке (длинные полосы на вершине)
обновления:
Редактировать с помощью советов от here я получаю эту ошибку:
ggplot(df, aes(names,vars)) + geom_bar(stat="identity") + coord_flip() +
theme_bw() + facet_wrap(~groups,nrow = 3,scales = "free_x")
Error in facet_render.wrap(plot$facet, panel, plot$coordinates, theme, :
ggplot2 does not currently support free scales with a non-cartesian coord or coord_flip.
In addition: Warning message:
Stacking not well defined when ymin != 0
, когда я удаляю coord_flip() он работает, но я все еще получаю предупреждение и результат не то, что я хочу.
Вы можете проверить [здесь] (http://stats.stackexchange.com/questions/24806/dropping-unused-levels-in-facets-with -ggplot2) – akrun
@akrun Я добавил дополнительную информацию – spore234