2016-09-18 3 views
0

Я пытаюсь переместить свой заголовок легенды поперек, чтобы сосредоточиться над содержимым легенды, используя функцию направляющей. Я пытался использовать следующий код:название легенды переезда в ggplot2

guides(colour=guide_legend(title.hjust = 20)) 

Я думал о попытке сделать воспроизводимый пример, но я думаю, что причина это не работает что-то делать с выше линий не соответствуют остальной части моего кода. Так вот остальная часть кода я использую в моем сюжете:

NH4.cum <- ggplot(data=NH4_by_Date, aes(x=date, y=avg.NH4, group = CO2, colour=CO2)) + 
    geom_line(aes(linetype=CO2), size=1) +    #line options 
    geom_point(size=3) +          #point symbol sizes 
    #scale_shape_manual(values = c(1, 16)) +     #manually choose symbols 
    theme_bw()+ 
    theme(axis.text.x=element_text(colour="white"), #change x axis labels to white. 
     axis.title=element_text(size=12), 
    axis.title.x = element_text(color="white"), #Change x axis label colour to white 
    panel.border = element_blank(),       #remove box boarder 
     axis.line.x = element_line(color="black", size = 0.5),  #add x axis line 
     axis.line.y = element_line(color="black", size = 0.5),  #add y axis line 
     legend.key = element_blank(),           #remove grey box from around legend 
     legend.position = c(0.9, 0.6))+            #change legend position 
    geom_vline(xintercept=c(1.4,7.5), linetype="dotted", color="black")+ #put in dotted lines for season boundaries 
    scale_color_manual(values = c("#FF6600", "green4", "#0099FF"), 
       name=expression(CO[2]~concentration~(ppm))) +     #manually define line colour 
    scale_linetype_manual(guide="none", values=c("solid", "solid", "solid")) +  #manually define line types 
    scale_shape_manual(values = c(16, 16, 16)) +     #manually choose symbols 
    guides(colour=guide_legend(title.hjust = 20))+ 
    scale_y_continuous(expand = c(0, 0), limits = c(0,2200), breaks=seq(0,2200,200))+  #change x axis to intercept y axis at 0 
    xlab("Date")+ 
    ylab(expression(Membrane~available~NH[4]^{" +"}~-N~(~mu~g~resin^{-1}~14~day^{-1})))+ 
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+ 
    geom_errorbar(aes(ymin = avg.NH4 - se.NH4,    #set y error bars 
       ymax = avg.NH4 + se.NH4), 
      width=0.1) 

Я пытался делать вместо того, чтобы следующий не повезло:

guides(fill=guide_legend(title.hjust=20) 

Я также скорректировали значение hjust от значений от -2 до 20, чтобы убедиться, что это изменило ситуацию, но это не так.

Я попытаюсь приложить изображение графика до сих пор, чтобы вы могли видеть, о чем я говорю. Note: I'm trying to shift the Co2 concentration (ppm) title to be centered over the legend objects

Я просмотрел все вопросы, которые могу выполнить при переполнении стека, и, насколько мне известно, это не дубликат, поскольку он специфичен для ошибки кодирования моего собственного. Спасибо заранее!

ответ

1

Очевидный подход, например.

theme(legend.title = element_text(hjust = .5)) 

не работал для меня. Интересно, связано ли это с этим open issue в ggplot2. В любом случае, один ручной подход будет удалить заголовок легенды, и поместите новый вручную:

ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(cyl))) + 
    geom_point() + 
    stat_smooth(se = FALSE) + 
    theme_bw() + 
    theme(legend.position = c(.85, .6), 
     legend.title = element_blank(), 
     legend.background = element_rect(fill = alpha("white", 0)), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank()) + 
    annotate("text", x = 5, y = 27, size = 3, 
      label = "CO[2]~concentration~(ppm)", parse = TRUE) 

Выход: enter image description here

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