考慮這個數據幀:排除在每個方面未使用的因子水平在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軸應該是「變量」列的值。每個網格中的比例應該是相同的,應該放棄整個x比例。我只是想在每一個網格條完整的比例
- 酒吧應該是在每個網格遞減順序(頂部長條)
更新:使用從諮詢
編輯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