วิธีสร้างมาตราส่วนลอการิทึมใน 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 ')

สเกลลอการิทึมบนแกน y ของ ggplot2

ตัวอย่างที่ 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 ') 

สเกลลอการิทึม ggplot2

ตัวอย่างที่ 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))) 

สเกลลอการิทึมพร้อมเลขชี้กำลังใน ggplot2

โปรดทราบว่าป้ายกำกับแกน Y มีเลขชี้กำลัง ไม่เหมือนสองแปลงก่อนหน้า

แหล่งข้อมูลเพิ่มเติม

คู่มือฉบับสมบูรณ์สำหรับชื่อ ggplot2
คู่มือฉบับสมบูรณ์เกี่ยวกับธีม ggplot2 ที่ดีที่สุด
วิธีสร้างแปลงแบบเคียงข้างกันใน ggplot2

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *