Наличие двух преобразований оси Y в ggplot2 - PullRequest
0 голосов
/ 05 декабря 2018

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

В любом случае, я надеюсь сделать что-то похожее на

scale_y_reverse(breaks=seq(0,1,.05),
                   sec.axis = sec_axis(~ 1-., name = "SecondAxis", breaks=seq(0,1,.05) ))

К сожалению, это не похоже на работу.Мне нужно, чтобы основная ось двигалась вверх от 1 до нуля, а вторая ось y - от 0 до 1.enter image description here

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

1 Ответ

0 голосов
/ 05 декабря 2018

Я не могу воспроизвести вашу проблему.

Обновление: Кажется, это проблема (ошибка), специфичная для ggplot2_3.1.0.На GitHub существует несколько проблем, связанных с неожиданным поведением sec_axis в 3.1.0: поведение формулы sec_axis # 2974 , Тики смещены для sec_axis с некоторыми преобразованиями масштаба и данными в 3.1.0# 2978 .

Следующий пример воспроизводится в ggplot2_3.0.0, но не работает в ggplot2_3.1.0.


Вот минимальный и воспроизводимый пример, не могли бы вы дваждыубедитесь, что это работает для вас.

# Generate sample data
x <- seq(1, 4 * pi, length.out = 100)
y <- sin(x)^2

library(ggplot2)
ggplot(data.frame(x, y), aes(x, y)) +
    geom_point() +
    scale_y_reverse(
        breaks = seq(0, 1, 0.1),
        sec.axis = sec_axis(~ 1 - ., name = "SecondAxis", breaks = seq(0, 1, 0.1)))

enter image description here

...