Как исправить / «заблокировать» масштаб оси Y в ggplot2? - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу сравнить 5 графиков (столбцов с частотами, наложенными на график температурной линии), для этого масштаб y должен быть постоянным на всех графиках.Но когда я строю графики, шкала y адаптируется в соответствии с максимальным значением y (= максимальной частотой) каждого набора данных.Это мой код:

ggplot(df) + 
    geom_bar(aes(hours,count), stat = "identity", fill = "gray92", colour = 
"gray92") +
    geom_line(aes(hours, percipitation*14), stat = "identity", size = 1.2) +
    theme(panel.grid.major = element_blank(),
          panel.grid.minor = element_blank(),
          panel.background = element_blank(),
          axis.line = element_line(colour = "black")) +
    ylab("Frequency") +
    ylim(0,80) +
    scale_y_continuous(sec.axis = sec_axis(~./14, name = "Percipitation [mm]"), breaks = seq(0,80,10)) +
    scale_x_continuous(breaks = c(0:23)) +
    theme(plot.title = element_text(size = 42, face = "bold", hjust = 0.5, margin = margin(0,0,35,0), 
          axis.title.x = element_text(size = 32, margin = margin(20,0,0,0),
          axis.title.y = element_text(size = 32, margin = margin(0,15,0,0)
          axis.title.y.right = element_text(size = 32, margin = margin(0,0,0,15), 
          axis.text.x = element_text(size = 18, margin = margin(7,0,0,0),
          axis.text.y = element_text(size = 18, margin = margin(0,5,0,0)),
          axis.text.y.right = element_text(size = 18, margin = margin(0,0,0,5)))

Я хочу, чтобы все графики имели шкалу y: от 0 до 80, независимо от максимального значения фактического набора данных.

Спасибо!:)

1 Ответ

0 голосов
/ 26 апреля 2018

Похоже, ваш scale_y_continuous переопределяет ylim (), который вы установили ранее, попробуйте вместо этого:

scale_y_continuous(sec.axis = sec_axis(~./14, name = "Precipitation [mm]"), 
breaks = seq(0,80,10),limits = c(0,80)) 
...