Cara membuat skala logaritma di ggplot2
Seringkali Anda mungkin ingin mengonversi skala sumbu x atau sumbu y dari plot ggplot2 menjadi skala logaritmik.
Anda dapat menggunakan salah satu dari dua metode untuk melakukan ini hanya dengan menggunakan ggplot2:
1. Gunakan scale_y_continuous() atau scale_x_continuous()
ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ') + scale_x_continuous(trans=' log10 ')
2. Gunakan koordinat_trans()
ggplot(df, aes (x=x, y=y)) + geom_point() + coord_trans(y = ' log10 ' , x=' log10 ')
Jika Anda ingin memformat label sumbu untuk menampilkan eksponen, Anda dapat menggunakan fungsi dalam paket skala :
ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ', breaks= trans_breaks (' log10 ', function (x) 10^x), labels= trans_format (' log10 ', math_format (10^.x)))
Tutorial ini menunjukkan contoh cara menggunakan fungsi-fungsi ini dalam praktik.
Contoh 1: Skala logaritma menggunakan scale_y_continuous()
Kode berikut menunjukkan cara menggunakan fungsi scale_y_continuous() untuk membuat skala logaritmik untuk sumbu y dari plot sebar:
library (ggplot2) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ')
Contoh 2: skala logaritmik menggunakan coord_trans()
Kode berikut menunjukkan cara menggunakan fungsi coord_trans() untuk membuat skala logaritmik untuk sumbu y dari plot sebar:
library (ggplot2) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis ggplot(df, aes (x=x, y=y)) + geom_point() + coord_trans(y=' log10 ')
Contoh 3: Label skala logaritmik khusus
Kode berikut menunjukkan cara menggunakan fungsi dalam paket skala untuk membuat skala logaritmik untuk sumbu y dari plot sebar dan menambahkan label khusus dengan eksponen:
library (ggplot2) library (scales) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis and custom labels ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ', breaks= trans_breaks (' log10 ', function (x) 10^x), labels= trans_format (' log10 ', math_format (10^.x)))
Perhatikan bahwa label sumbu Y memiliki eksponen, tidak seperti dua plot sebelumnya.
Sumber daya tambahan
Panduan lengkap untuk judul ggplot2
Panduan lengkap tema ggplot2 terbaik
Cara membuat plot berdampingan di ggplot2