2015-03-17 3 views
2

Я прошел через примеры для изменения орфографических ордеров на сайте, но, похоже, не могу заставить ничего работать для моего конкретного случая. Любые идеи о том, как сделать это с моей настройкой данных, будут высоко оценены. Я немного новичок в ggplot2 и в высшей степени тупик. Я бы хотел, чтобы мои модели были заказаны M1, M2, M3 с M1 в верхней части каждой грани. Благодаря!переупорядочивающие грани в ggplot2

Outcome<-c(1,1,1,2,2,2,3,3,3) 
OR<-c(1.97,2.47,3.56,1.73,2.25,4.09,1.21,1.48,2.25) 
min<-c(1.37,1.74,2.55,1.13,1.52,2.84,0.74,0.95,1.49) 
max<-c(2.83,3.49,4.98,2.66,3.35,5.9,1.97,2.33,3.41) 
Aces<-c(1,2,3,1,2,3,1,2,3) 
ace<-data.frame(cbind(Outcome,OR,min,max,Aces)) 

ace_labels <- list('1'="1 ACE",'2'="2 ACEs",'3'="3 ACEs") 

ace_labeller <- function(variable,value){return(ace_labels[value])} 

ace$Outcome = factor(ace$Outcome, levels=c("1","2","3"), 
       labels=c("M1: Depression","M2: MH Barrier to Work", 
          "M3: MH Barrier to Work"))    

ggplot(data=ace,aes(x=OR,y=Outcome,label=OR))+ 
geom_point(aes(size=8))+ 
geom_text(size=5,vjust=1.8)+ 
geom_errorbarh(aes(xmin=min,xmax=max),height=.1)+ 
geom_vline(xintercept=1,linetype="dashed")+ 
scale_x_log10(breaks=seq(1,6,1),name="Figure 1: Odds Ratios (OR) and 95% Confidence Intervals for Models 1, 2 and 3 (N=1073) 
      \nEach OR is compared to 0 ACEs")+ 
labs(y="")+ 
facet_grid(Aces~., labeller=ace_labeller)+ 
guides(size=FALSE)+ 
theme_bw()+ 
theme(axis.text.y=element_text(size=12))+ 
theme(strip.text.y=element_text(size = 12))+ 
theme(axis.title.x=element_text(face="italic", size = 12,hjust=.5)) 

enter image description here

+0

Если вам нужна помощь, вам следует предоставить полезные данные – DatamineR

ответ

1

Если поменять местами ярлыки, установленные для ace$Outcome вы можете получить его на участок M1 сверху, M2, M3 и на дне в каждой грани.

Просто изменение:

ace$Outcome = factor(ace$Outcome, levels=c("3","2","1"), 
      labels=c("M3: MH Barrier to Work", 
         "M2: MH Barrier to Work", 
         "M1: Depression")) 

Используя свои же выборочные данные и коды участка она производит:

enter image description here

Ваш код (только с отмеченным выше изменено):

Outcome<-c(1,1,1,2,2,2,3,3,3) 
OR<-c(1.97,2.47,3.56,1.73,2.25,4.09,1.21,1.48,2.25) 
min<-c(1.37,1.74,2.55,1.13,1.52,2.84,0.74,0.95,1.49) 
max<-c(2.83,3.49,4.98,2.66,3.35,5.9,1.97,2.33,3.41) 
Aces<-c(1,2,3,1,2,3,1,2,3) 
ace<-data.frame(cbind(Outcome,OR,min,max,Aces)) 

ace_labels <- list('1'="1 ACE",'2'="2 ACEs",'3'="3 ACEs") 

ace_labeller <- function(variable,value){return(ace_labels[value])} 

ace$Outcome = factor(ace$Outcome, levels=c("3","2","1"), 
       labels=c("M3: MH Barrier to Work", 
          "M2: MH Barrier to Work", 
          "M1: Depression"))    

library(ggplot2) 

ggplot(data=ace,aes(x=OR,y=Outcome,label=OR))+ 
geom_point(aes(size=8))+ 
geom_text(size=5,vjust=1.8)+ 
geom_errorbarh(aes(xmin=min,xmax=max),height=.1)+ 
geom_vline(xintercept=1,linetype="dashed")+ 
scale_x_log10(breaks=seq(1,6,1),name="Figure 1: Odds Ratios (OR) and 95% Confidence Intervals for Models 1, 2 and 3 (N=1073) 
      \nEach OR is compared to 0 ACEs")+ 
labs(y="")+ 
facet_grid(Aces~., labeller=ace_labeller)+ 
guides(size=FALSE)+ 
theme_bw()+ 
theme(axis.text.y=element_text(size=12))+ 
theme(strip.text.y=element_text(size = 12))+ 
theme(axis.title.x=element_text(face="italic", size = 12,hjust=.5)) 
+0

Большое спасибо ... Не могу поверить, что я этого не пытался. – swhusky

Смежные вопросы