R:fct_reorder()并制作图表网格 - 不兼容?

时间:2018-04-22 14:20:23

标签: r ggplot2 cowplot

我正在使用fct_reorder()来命令ggplot中的因子级别。这适用于个别情节。但是,当我使用plot_grid()中的cowplot时,会出现某种问题。相比之下,在左边,我使用了具有固定因子水平的图,而不使用fct_reorder

enter image description here

编辑: 这是我正在使用的实际代码:

#make the base 
myplot <-filter(summary_by_intensity_reshaped, str_detect(feature, "binary"), Frequency == "2Hz") %>%
ggplot(., aes(fct_reorder(feature, mean),mean,fill=Intensity, ymax=mean+sem, ymin=mean-sem)) 

#add the layers
myplot  + geom_bar(stat="identity", position=position_dodge()) + 
  geom_errorbar(aes(width=0.2),position=position_dodge(0.9)) + 
  labs(x="Behavior",y="Percent of Trials (%)") +
  scale_x_discrete(breaks=c("binary_flutter", "binary_hold", "binary_lift", "binary_jump","binary_rear", "binary_lick", "binary_guard", "binary_vocalize"), labels=c("Flutter", "Holding", "Lifting", "Jumping", "Rearing", "Licking", "Guarding", "Vocalizing"))+
  facet_grid(~Frequency)+
  theme(axis.text.x=element_text(angle=-90))

输出如下: enter image description here

当我尝试在plot_grid()中使用'myplot'时出现问题。就像下面的例子中那样奇怪地渲染它。

1 个答案:

答案 0 :(得分:1)

我怀疑你错误地使用了fct_reorder()plot_grid()只需拍摄你制作的任何情节并将其放入网格中。

library(ggplot2)
library(cowplot)
library(forcats)

p1 <- ggplot(mpg, aes(class, displ, color = factor(cyl))) + geom_point()    
p2 <- ggplot(mpg, aes(fct_reorder(class, displ, mean), displ, color = factor(cyl))) + 
        geom_point()
plot_grid(p1, p2)

enter image description here

从你右边的情节中的x轴标题看,我觉得你忘了向fct_reorder()提供它应该应用该函数的向量。