我正在使用fct_reorder()
来命令ggplot中的因子级别。这适用于个别情节。但是,当我使用plot_grid()
中的cowplot
时,会出现某种问题。相比之下,在左边,我使用了具有固定因子水平的图,而不使用fct_reorder
。
编辑: 这是我正在使用的实际代码:
#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))
当我尝试在plot_grid()
中使用'myplot'时出现问题。就像下面的例子中那样奇怪地渲染它。
答案 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)
从你右边的情节中的x轴标题看,我觉得你忘了向fct_reorder()
提供它应该应用该函数的向量。