วิธีสร้างมาตราส่วนลอการิทึมใน ggplot2
บ่อยครั้งที่คุณอาจต้องการแปลงสเกลของแกน x หรือแกน y ของพล็อต ggplot2 เป็นสเกลลอการิทึม
คุณสามารถใช้หนึ่งในสองวิธีในการดำเนินการนี้โดยใช้เพียง ggplot2:
1. ใช้ scale_y_continuous() หรือ scale_x_continuous()
ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ') + scale_x_continuous(trans=' log10 ')
2. ใช้พิกัด_ทรานส์()
ggplot(df, aes (x=x, y=y)) + geom_point() + coord_trans(y = ' log10 ' , x=' log10 ')
หากคุณต้องการจัดรูปแบบป้ายกำกับแกนเพื่อแสดงเลขชี้กำลัง คุณสามารถใช้ฟังก์ชันในแพ็คเกจ มาตราส่วน ได้:
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)))
บทช่วยสอนนี้แสดงตัวอย่างวิธีใช้ฟังก์ชันเหล่านี้ในทางปฏิบัติ
ตัวอย่างที่ 1: สเกลลอการิทึมโดยใช้ scale_y_continuous()
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน scale_y_continuous() เพื่อสร้างมาตราส่วนลอการิทึมสำหรับแกน y ของแผนภูมิกระจาย:
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 ')
ตัวอย่างที่ 2: สเกลลอการิทึมโดยใช้ coord_trans()
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน coord_trans() เพื่อสร้างมาตราส่วนลอการิทึมสำหรับแกน y ของแผนภูมิกระจาย:
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 ')
ตัวอย่างที่ 3: ป้ายมาตราส่วนลอการิทึมแบบกำหนดเอง
โค้ดต่อไปนี้แสดงวิธีใช้ฟังก์ชันในแพ็คเกจ เครื่องชั่ง เพื่อสร้างมาตราส่วนลอการิทึมสำหรับแกน y ของแผนภาพกระจาย และเพิ่มป้ายกำกับที่กำหนดเองพร้อมเลขชี้กำลัง:
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)))
โปรดทราบว่าป้ายกำกับแกน Y มีเลขชี้กำลัง ไม่เหมือนสองแปลงก่อนหน้า
แหล่งข้อมูลเพิ่มเติม
คู่มือฉบับสมบูรณ์สำหรับชื่อ ggplot2
คู่มือฉบับสมบูรณ์เกี่ยวกับธีม ggplot2 ที่ดีที่สุด
วิธีสร้างแปลงแบบเคียงข้างกันใน ggplot2