Ответ 1
coord_fixed()
имеет аргументы, которые позволяют вам точно контролировать то, что вы хотели бы иметь здесь.
См. также http://ggplot2.tidyverse.org/reference/coord_fixed.html для справки.
К сожалению, невозможно использовать ваши x
и x1
динамическим способом внутри coord_fixed()
.
Пока вы произвольно добавляете абсолютные значения (0.6
и 6.4
ниже), вы можете сделать что-то вроде этого:
data_frame(x = 1:5, x1 = x+1, c = c('a','a','a','b','b')) %>%
ggplot(.) +
geom_curve(aes(x = x, xend = x1, y = 0, yend = 0), curvature = -1.3, alpha = .2) +
facet_grid(c ~ .) +
coord_fixed(ratio = 7, xlim = c(0.6, 6.4), ylim = c(0, 0.12), expand = FALSE) +
scale_y_continuous(breaks = c(0, 0.1))
Предполагая, что это выглядит так, как бы вы хотели, чтобы он выглядел, обратите внимание, что я установил expand = FALSE
для запуска ylim
в ноль и добавил буферы к xlim
(0.4) и верхней границе ylim
.
Я изменил значение по умолчанию ratio
от 1 до 7, чтобы масштабировать вас от 0,7 до 0,1, что я понимаю, что вы хотели бы иметь в конце. ratio = 1
означало бы, что у вас одинаковый масштаб (одинаковые расстояния) по оси y, как на оси x (что я считаю верным).
Наконец, мне пришлось добавить ручные разрывы для оси y (чтобы иметь меньше единиц), так что ячейки сетки были бы немного больше, что опять же является тем, что я делаю в качестве вашего возможного желания.