2015-01-30 21 views
21

Tôi muốn có tiêu đề chính và tiêu đề trục có cùng kích thước phông chữ với văn bản được chú thích trong cốt truyện của tôi.ggplot2, thay đổi kích thước tiêu đề

tôi đã sử dụng theme_get() và thấy rằng kích thước văn bản là 12, vì vậy tôi đã làm điều đó trong tuyên bố chủ đề của tôi - điều này không hoạt động. Tôi cũng đã cố gắng gửi kích thước tương đối đến 1 và điều này không hoạt động

enter image description here Tôi hy vọng ai đó có thể giúp tôi.

Mã dưới

library(ggplot2) 
library(gridExtra) #to set up plot grid 
library(stringr) #string formatting functions 
library(plyr) #rbind.fill function 
library(reshape2) #transformation of tables 

dat<-data.frame(
est=c(2.75,2.95,2.86,2.99), 
ucl=c(2.92,3.23,3.38,4.91), 
lcl=c(2.24,1.67,2.44,1.82), 
ord=c(1,2,1,2) 
) 
dat$varname<-c('Estimate','Predictive','Estimate','Predictive') 
dat$grp<-c('Cobalt','Cobalt','Chromium','Chromium') 

for (i in unique(dat$grp)) { 
    dat <- rbind.fill(dat, data.frame(grp = i, ord=0, 
            stringsAsFactors = F)) 
} 

dat$grp_combo <- factor(paste(dat$grp, dat$ord, sep = ", ")) 
dat$grpN <- as.numeric(dat$grp_combo) 



rng <- c(0,6) 
scale.rng <-1 


xstart=-(max(dat$grpN)+2) 
xend=4 


ThemeMain<-theme(legend.position = "none", plot.margin = unit(c(0,0,0, 0), "npc"), 
       panel.margin = unit(c(0,0, 0, 0), "npc"), 
       title =element_text(size=12, face='bold'), 
       axis.text.y = element_blank(), 
       axis.text.x = element_text(color='black'), 
       axis.ticks.y = element_blank(), 
       axis.title.x = element_text(size=12,color='black',face='bold') 
       ) 
BlankSettings <- theme(legend.position = "none", 
         title =element_text(size=12, face='bold'), 
         plot.margin = unit(c(0,0, 0, 0), "npc"), 
         panel.margin = unit(c(0,0, 0, 0), "npc"),    
         axis.text.x = element_text(color='white'),        
         axis.text.y = element_blank(), 
         axis.ticks.x = element_line(color = "white"), 
         axis.ticks.y=element_blank(), 
         axis.title.x = element_text(size=12,color='white',face='bold'), 
         panel.grid = element_blank(),panel.grid.major = element_blank(),panel.background = element_blank() 
         ) 

pd <- position_dodge(width = 0.7) 

####################################################################################################### 
#MAIN PLOT 
####################################################################################################### 
mainPart<- 
    ggplot(dat, aes(x=-grpN,y=est, ymin=lcl, ymax=ucl, group=1)) + 
    scale_y_continuous(name=NULL, breaks=seq(rng[1], rng[2], scale.rng), limits=c(rng[1], rng[2]), expand=c(0,0)) + 
    ylab('Ion Concentration') + 
    ggtitle('Mean with 95% HDI')+ 
    #geom_segment(aes(x=xstart, xend=0, y=0, yend=0), linetype=3, alpha=0.01) + 
    geom_linerange(aes(linetype="1"),position=pd) + 
    geom_point(aes(shape="1"), fill="white",position=pd) + 
    coord_flip() + 
    scale_x_continuous(limits=c(xstart,xend), expand=c(0,0))+xlab(NULL)+ 
    ThemeMain 

####################################################################################################### 
#varnameS 
####################################################################################################### 
# ystart & yend are arbitrary. [0, 1] is 
# convinient for setting relative coordinates of 
# columns 
ystart = 0 
yend = 1 
p1 <- 
    ggplot(dat, aes(x = -varnameN, y = 0)) + 
    coord_flip() + 
    scale_y_continuous(limits = c(ystart, yend)) + 
    BlankSettings+ 
    scale_x_continuous(limits = c(xstart, xend), expand = c(0, 0)) + 
    xlab(NULL) + 
    ylab('') + 
    ggtitle('') 

studyList<- 
    p1 + 
    with(unique(dat[is.na(dat$varname),c("grpN","grp")]), annotate("text",label=grp, x=-grpN,y=0, fontface='bold', hjust=0)) + #Variable Group varnames 
    with(dat[!is.na(dat$var),],annotate("text",label=varname,x=-grpN,y=0.04, hjust=0)) #Variables 

####################################################################################################### 
#EFFECTS 
####################################################################################################### 
f<-function(x) round(x,2) 
dat$msmt<-paste(f(dat$est),' [',f(dat$lcl),', ',f(dat$ucl),']',sep='') 


effectSizes<-p1+ 
    annotate("text",x=-dat$grpN, y=0.25,label=ifelse(is.na(dat$varname)==T,'',dat$msmt)) 



grid.arrange(ggplotGrob(studyList), ggplotGrob(mainPart), 
      ggplotGrob(effectSizes), ncol = 3, widths = unit(c(0.19, 
                   0.4, 0.41), "npc")) 
+0

@TrynnaDoStat là nhanh hơn so với tôi, vì vậy tôi sẽ bổ sung câu trả lời của tôi như một lời bình luận. Tôi nghĩ rằng bạn cần sử dụng tham số 'plot.title' thay vì chỉ' title' trong lệnh 'theme()' của bạn. Nếu bạn muốn thay đổi kiểu phông chữ, bạn có thể thực hiện điều đó thông qua tham số 'family' (có thể không hoạt động trên tất cả các nền tảng). –

Trả lời

41
+ theme(plot.title = element_text(size=22)) 

Dưới đây là tập hợp đầy đủ những thứ bạn có thể thay đổi trong element_text:

element_text(family = NULL, face = NULL, colour = NULL, size = NULL, 
    hjust = NULL, vjust = NULL, angle = NULL, lineheight = NULL, 
    color = NULL) 
Các vấn đề liên quan