Форматирование разрывов осей, меток и условных обозначений при использовании вторичной оси y ggplot2 - PullRequest
0 голосов
/ 04 ноября 2019

Я добавил вторичную ось y к своему графику (используя ggplot2) и сумел получить шкалу на этой оси в порядке. Однако теперь шкала на моей основной оси y вернулась к значению по умолчанию, а не к тому, что я установил.

Я также хотел бы отформатировать заголовок на вторичной оси так, чтобы он находился на том же расстоянии от оси, что и мои два других, а не рядом с метками оси.

Наконец, я хотел бы просто сказать, что показывают столбцы и линии.

Вот мои данные:

Month   Average Methane Flux    Standard Error CH4 flux Average Air temperature
Aug -967.19 1725.28 19.58
Sep 1428.95 718.88  19.17
Oct 1275.80 2968.65 12.70
Nov         
Dec         
Jan         
Feb         
Mar         
Apr         
May         
Jun         
Jul         

Код:

Month1 <- factor(Month, levels=unique(as.character(Month)))

p <- ggplot(data = Elstow.monthly.fluxes, 
            aes(x = Month1, y = Average.Methane.Flux)) + 
  geom_bar(stat = "identity", colour = "black") + 
  geom_errorbar(aes(ymin = Average.Methane.Flux - Standard.Error.CH4.flux, 
                    ymax = Average.Methane.Flux + Standard.Error.CH4.flux, 
                    width = 0.4)) +
  geom_line(data = Elstow.monthly.fluxes, 
            aes(Month1, Average.Air.temperature*100, group = 1), 
            colour = "Red", size = 1) + 
  xlab(expression("Month")) + 
  ylab(expression(Average~CH[4]~Flux~(µg~CH[4]~m^{-2}~d^{-1}))) + 
  scale_y_continuous(breaks = seq(-3000,4500,500)) + 
  scale_y_continuous(sec.axis = sec_axis(~./100, 
                                         name = "Average Air Temperature (°C)",  
                                         breaks = seq(-25,45,5))) + 
  theme(axis.text.x = element_text(colour = "black")) + 
  theme(axis.text.y = element_text(colour = "black")) + 
  theme(panel.background = element_rect("white", "black")) + 
  theme(panel.border = element_rect(colour = "black", fill=NA, size=0.5)) +
  theme(axis.text = element_text(size = 12))+ 
  theme(axis.title = element_text(size = 14))+ 
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))) + 
  theme(axis.title.x = element_text(margin = margin(t = 10, r = 0, b = 0, l = 0)))

print(p)
...