Как я могу установить начало / перехват оси Y и оси X в ggplot2?
Линия оси X должна быть точно в y=Z
.
С Z=0
или другим данным значением.
xlim
и ylim
не режь это здесь. Вам нужно использовать expand_limits
, scale_x_continuous
и scale_y_continuous
. Пытаться:
df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for
p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
Возможно, вам придется немного изменить положение, чтобы убедиться, что точки не обрезаются (см., Например, точку в x = 5
и y = 5
.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
как-то без этого это не сработалоexpand=expand_scale(mult=c(0,0.1))
так что вы все еще получаете заполнение на верхних концах: stackoverflow.com/a/59056123/8400969Просто добавьте их в свой ggplot:
пример
И, наконец, взять большую осторожность , чтобы не случайно исключить данные с вашей карты . Например, a
position = 'dodge'
может привести к тому, что столбец полностью покинет график (например, если его значение равно нулю, а ось начинается с нуля), поэтому вы можете его не видеть и даже не знать о его наличии. Я рекомендую сначала полностью отобразить данные, проверить, а затем использовать приведенный выше совет, чтобы улучшить эстетику графика.источник