Як я можу встановити початок / перехоплення осі 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))щоб ви все-таки отримали
Просто додайте їх у свій 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))чомусь без цього не вийшло