问题描述
如何在使用函数 gather 时手动更改刻面的顺序?网格中的数字不是按照我在 myvars 中定义的顺序显示的。
代码如下:
myvars <- c("1","2","3","4","5","6","7","8","9","10","11","12","13","14")
DataVars<- Data[myvars]
DataVars%>%
gather(-1,key = "var",value = "value") %>%
ggplot(aes(x = value,y = 1)) +
facet_wrap(~ var,scales = "free") +
geom_jitter(size = 0.5,shape = 16,aes(colour = var),width = 0.5,height = 0.5) +
geom_smooth(method="lm",size = 1,color = "black",level=0.95)
提前致谢!
解决方法
要在管道中使用已接受的分析器 Fixing the order of facets in ggplot,您需要 mutate
动词:
DataVars%>%
gather(-1,key = "var",value = "value") %>%
mutate(var = factor(var,levels = ...) %>%
ggplot(aes(x = value,y = 1)) +
facet_wrap(~ var,scales = "free") +
geom_jitter(size = 0.5,shape = 16,aes(colour = var),width = 0.5,height = 0.5) +
geom_smooth(method="lm",size = 1,color = "black",level=0.95)
在上面的示例中,将 ...
替换为包含所需方面标签顺序的向量。