我试图一次性绘制多个因子列,使用ggplot2作为绘图引擎。如何用ggplot绘制多个因子列?
绘制多个指标列是直截了当:
library(ggplot2)
library(dplyr) # dplyr 0.5.0 select_if
library(purrr)
data(diamonds)
diamonds %>%
select_if(is.numeric) %>%
gather %>%
ggplot(aes(x = value)) +
geom_histogram() +
facet_wrap(~key)
不过,我没有成功,在一杆绘制多个因素(定性)列。我想以编程方式选择列,即,而不是直接命名它们。
我想这一点,但它确实不产生一个合理的结果:
diamonds %>%
select_if(is.factor) %>%
gather %>%
ggplot(aes(x = value)) + geom_bar() +
facet_wrap(~key) +
coord_flip()
我认为有可能沿着这些路线的解决方案:
diamonds %>%
select_if(is.factor) %>%
ggplot(aes(x = .[[1]])) + geom_bar()
在哪里.[[1]]
应该由一些列占位符替换(所以在这里我直接将该列命名为列,可以避免,因为我在现实中有很多列)。
for循环可能会完成这项工作,但我想用dplyr来达到目的。
你能否解释一下你会考虑一个明智的结果,即你的第二个数字与你想要的输出有什么不同?主要问题是每个绘图没有自己的Y轴(因此按字母顺序排序非常没有意义)? – mkt
#mkt,感谢您的评论,#Axeman有一个好主意,那正是我在寻找的 –