วิธีพล็อตค่าเฉลี่ยด้วย geom_bar() ใน ggplot2


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อพล็อตค่าเฉลี่ยตามกลุ่มโดยใช้ฟังก์ชัน geom_bar() ใน ggplot2:

 library (ggplot2)

ggplot(df, aes(group_var, values_var)) +
  geom_bar(position=' dodge ', stat=' summary ', fun=' mean ')

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

หมายเหตุ : อาร์กิวเมนต์ fun ใน geom_bar() บอก ggplot2 ว่าสถิติเชิงพรรณนาใดที่จะแสดงโดยใช้แท่ง คุณยังสามารถส่งผ่านสถิติเชิงพรรณนาอื่นๆ เช่น “ค่ามัธยฐาน” ไปยังอาร์กิวเมนต์นี้เพื่อพล็อตค่ามัธยฐานตามกลุ่ม

ตัวอย่าง: การพล็อตค่าเฉลี่ยด้วย geom_bar() ใน ggplot2

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับจำนวนคะแนนที่ผู้เล่นบาสเก็ตบอลจากทีมต่างๆ ทำไว้:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 4 ),
                 points=c(3, 5, 5, 6, 5, 7, 7, 8, 9, 9, 9, 8))

#view data frame
df

   team points
1 to 3
2 to 5
3 to 5
4 to 6
5 B 5
6 B 7
7 B 7
8 B 8
9 C 9
10 C 9
11 C 9
12 C 8

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างแผนภูมิแท่งโดยแต่ละแท่งแสดงถึงค่า จุด เฉลี่ย โดยจัดกลุ่มตาม ทีม :

 library (ggplot2)

#create bar plot to visualize mean points value by team
ggplot(df, aes(team, points)) +
  geom_bar(position=' dodge ', stat=' summary ', fun=' mean ') 

พล็อตค่าเฉลี่ยด้วย geom_bar ใน ggplot2

ความสูงของแต่ละแท่งแสดงถึงค่า คะแนน เฉลี่ยของแต่ละ ทีม

ในการแสดงค่าคะแนนเฉลี่ยจริงของแต่ละทีม เราสามารถใช้ฟังก์ชัน summarise() จากแพ็คเกจ dplyr :

 library (dplyr)

#calculate mean value of points, grouped by team
df %>%
  group_by(team) %>%
  summarise(mean_pts = mean(points, na. rm = TRUE ))

# A tibble: 3 x 2
  team mean_pts
      
1 to 4.75
2 B 6.75
3 C 8.75

จากผลลัพธ์เราจะเห็นค่าคะแนนเฉลี่ยของแต่ละทีม:

  • ทีมเอ: 4.75
  • ทีม B: 6.75
  • ทีม C: 8.75

ค่าเหล่านี้สอดคล้องกับความสูงของแท่งที่แสดงในแผนภูมิแท่งด้านบน

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

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

วิธีปรับช่องว่างระหว่างแท่งใน ggplot2
วิธีลบ NA ออกจากพล็อตใน ggplot2
วิธีเปลี่ยนสีของแถบในแผนภูมิ Stacked Bart ใน ggplot2

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

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