Как я могу установить начало / перехват оси Y и оси X в ggplot2?
Линия оси X должна быть точно в y=Z.
С Z=0или другим данным значением.
Как я могу установить начало / перехват оси 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.
expand=expand_scale(mult=c(0,0.1))так что вы все еще получаете заполнение на верхних концах: stackoverflow.com/a/59056123/8400969
Просто добавьте их в свой ggplot:
+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
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), limits = c(0,NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
И, наконец, взять большую осторожность , чтобы не случайно исключить данные с вашей карты . Например, a position = 'dodge'может привести к тому, что столбец полностью покинет график (например, если его значение равно нулю, а ось начинается с нуля), поэтому вы можете его не видеть и даже не знать о его наличии. Я рекомендую сначала полностью отобразить данные, проверить, а затем использовать приведенный выше совет, чтобы улучшить эстетику графика.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))как-то без этого это не сработало