วิธีหมุนข้อความที่มีคำอธิบายประกอบใน ggplot2 (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อหมุนข้อความที่มีคำอธิบายประกอบในแปลง ggplot2:

 ggplot(df) +
  geom_point(aes(x=x, y=y)) + 
  geom_text(aes(x=x, y=y, label=group), hjust= -0.3 , vjust= -0.1 , angle= 45 )

ในตัวอย่างนี้ เราใช้อาร์กิวเมนต์ มุม เพื่อหมุนข้อความที่มีคำอธิบายประกอบทวนเข็มนาฬิกา 45 องศา และใช้อาร์กิวเมนต์ hjust และ vjust เพื่อเพิ่มระยะห่างในแนวนอนและแนวตั้งของข้อความจากจุดบนร่องรอย

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: หมุนข้อความที่มีคำอธิบายประกอบใน ggplot2

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน R:

 #create data frame
df <- data. frame (player=c('Brad', 'Ty', 'Spencer', 'Luke', 'Max'),
                 dots=c(17, 5, 12, 20, 22),
                 assists=c(4, 3, 7, 7, 5))

#view data frame
df

   player points assists
1 Brad 17 4
2 Ty 5 3
3 Spencer 12 7
4 Luke 20 7
5 Max 22 5

ตอนนี้ สมมติว่าเราสร้าง Scatterplot ต่อไปนี้ใน ggplot2 เพื่อแสดงภาพข้อมูลนี้:

 library (ggplot2)

#create scatter plot with annotated labels
ggplot(df) +
  geom_point(aes(x=points, y=assists)) + 
  geom_text(aes(x=points, y=assists, label=player)) 

โปรดทราบว่าฉลากอยู่ในแนวนอนและอยู่เหนือจุดโดยตรง

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อหมุนป้ายกำกับและย้ายออกจากจุดเล็กน้อยเพื่อให้อ่านง่ายขึ้น:

 library (ggplot2)

#create scatter plot with annotated rotated labels
ggplot(df) +
  geom_point(aes(x=points, y=assists)) + 
  geom_text(aes(x=points, y=assists, label=player), hjust= -.3 , vjust= -.1 , angle= 45 ) +
  ylim(3, 8) 

โปรดทราบว่าขณะนี้ป้ายกำกับทั้งหมดหมุน 45 องศาทวนเข็มนาฬิกา

รู้สึกอิสระที่จะเล่นกับอาร์กิวเมนต์ hjust , vjust และ angle เพื่อให้ข้อความที่มีคำอธิบายประกอบของคุณอยู่ในตำแหน่งที่คุณต้องการบนโครงเรื่อง

หมายเหตุ : เรายังใช้อาร์กิวเมนต์ ylim เพื่อ เพิ่มขอบเขตแกน y บนโครงเรื่อง เพื่อไม่ให้ป้ายกำกับ “Spencer” ที่ด้านบนของโครงเรื่องถูกตัดออก

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีหมุนป้ายกำกับแกนใน ggplot2
วิธีเปลี่ยนขนาดจุดใน ggplot2
วิธีเพิ่มข้อความลงในแปลง ggplot2

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

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