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