Mi piacerebbe avere il titolo principale e il titolo dell'asse avere le stesse dimensioni del carattere del testo annotato nella trama.ggplot2, modifica la dimensione del titolo
ho usato theme_get() e ho trovato che la dimensione del testo è 12, quindi l'ho fatto nella mia dichiarazione tema - questo non ha funzionato. Ho anche provato a inviare la dimensione relativa a 1, e questo non ha funzionato
Speravo che qualcuno potesse aiutarmi per favore.
codice è al di sotto
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"))
@TrynnaDoStat era più veloce di me, quindi mi aggiungere la mia risposta come un commento. Penso che tu debba usare il parametro 'plot.title' invece di solo' title' nella tua chiamata 'theme()'. Se vuoi cambiare il tipo di carattere, puoi farlo tramite il parametro 'family' (potrebbe non funzionare su tutte le piattaforme, però). –