Bagaimana cara mengatur asal / intersepsi sumbu y dan sumbu x di ggplot2?
Garis sumbu x harus tepat sama y=Z
.
Dengan Z=0
atau nilai lain yang diberikan.
xlim
dan ylim
jangan potong di sini. Anda perlu menggunakan expand_limits
, scale_x_continuous
dan scale_y_continuous
. Mencoba:
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))
Anda mungkin perlu menyesuaikan sedikit untuk memastikan titik-titik tidak terpotong (lihat, misalnya, titik di x = 5
dan y = 5
.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
expand=expand_scale(mult=c(0,0.1))
sehingga Anda masih mendapatkan bantalan di ujung atas: stackoverflow.com/a/59056123/8400969Cukup tambahkan ini ke ggplot Anda:
+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) + scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
Contoh
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))
Terakhir, berhati - hatilah untuk tidak secara tidak sengaja mengecualikan data dari bagan Anda . Sebagai contoh, a
position = 'dodge'
dapat menyebabkan sebuah batang keluar dari grafik seluruhnya (misalnya jika nilainya nol dan Anda memulai sumbu dari nol), jadi Anda mungkin tidak melihatnya dan bahkan mungkin tidak mengetahuinya di sana. Saya sarankan untuk membuat plot data secara lengkap terlebih dahulu, periksa, kemudian gunakan tip di atas untuk meningkatkan estetika plot.sumber
Di versi terbaru ggplot2, ini bisa lebih mudah.
p <- ggplot(mtcars, aes(wt, mpg)) p + geom_point() p+ geom_point() + scale_x_continuous(expand = expansion(mult = c(0, 0))) + scale_y_continuous(expand = expansion(mult = c(0, 0)))
Lihat
?expansion()
untuk lebih jelasnya.sumber