{ggplot2} преднамеренно не поддерживает такого рода множественные оси Y , поскольку существует широкий консенсус в отношении того, что они являются плохой идеей, поскольку допускают неверную интерпретацию данных. Смотрите, например Почему бы не использовать две оси и что использовать вместо :
Мы считаем, что диаграммы с двумя разными осями Y затрудняют интуитивное интуитивное утверждение о двух рядах данных. Мы настоятельно рекомендуем две альтернативы: использовать две диаграммы вместо одной и использовать индексированные диаграммы.
Единственный вид вспомогательной оси y, который поддерживает {ggplot2}, - это масштабирование первичной оси, см. sec_axis
. Такая вторичная ось не страдает от той же проблемы, но она не будет работать в вашем сценарии: то, что вы хотите, действительно является одним из случаев, которые {ggplot2} намеренно не поддерживает.
Что вы можете сделать , однако, это дублировать одну ось Y и наложить столбцы и средние значения (хотя не ясно, что столбцы представляют в этом случае ):
# fix the `YearMonth` column:
df$YearMonth = lubridate::ymd(paste(sub('(.)$', '0\\1', as.character(df$YearMonth)),'01'))
ggplot(df) +
aes(YearMonth) +
geom_col(aes(y = Count)) +
geom_line(aes(y = Average), size = 2, color = 'lightblue') +
scale_y_continuous(sec.axis = dup_axis(name = NULL))