R - บ็อกซ์พล็อต

บ็อกซ์พล็อตเป็นการวัดว่าข้อมูลในชุดข้อมูลกระจายได้ดีเพียงใด แบ่งชุดข้อมูลออกเป็นสามควอไทล์ กราฟนี้แสดงค่าต่ำสุดค่าสูงสุดค่ามัธยฐานควอร์ไทล์แรกและควอร์ไทล์ที่สามในชุดข้อมูล นอกจากนี้ยังมีประโยชน์ในการเปรียบเทียบการกระจายของข้อมูลระหว่างชุดข้อมูลด้วยการวาด boxplots สำหรับแต่ละชุด

Boxplots ถูกสร้างขึ้นใน R โดยใช้ไฟล์ boxplot() ฟังก์ชัน

ไวยากรณ์

ไวยากรณ์พื้นฐานในการสร้าง boxplot ใน R คือ -

boxplot(x, data, notch, varwidth, names, main)

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • x เป็นเวกเตอร์หรือสูตร

  • data คือกรอบข้อมูล

  • notchเป็นค่าตรรกะ ตั้งค่าเป็น TRUE เพื่อวาดรอย

  • varwidthเป็นค่าตรรกะ กำหนดเป็นจริงเพื่อวาดความกว้างของกล่องตามสัดส่วนของขนาดตัวอย่าง

  • names คือป้ายกำกับกลุ่มที่จะพิมพ์ภายใต้แต่ละบ็อกซ์พล็อต

  • main ใช้เพื่อตั้งชื่อให้กับกราฟ

ตัวอย่าง

เราใช้ชุดข้อมูล "mtcars" ที่มีอยู่ในสภาพแวดล้อม R เพื่อสร้างบ็อกซ์พล็อตพื้นฐาน ลองดูคอลัมน์ "mpg" และ "cyl" ใน mtcars

input <- mtcars[,c('mpg','cyl')]
print(head(input))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

mpg  cyl
Mazda RX4         21.0   6
Mazda RX4 Wag     21.0   6
Datsun 710        22.8   4
Hornet 4 Drive    21.4   6
Hornet Sportabout 18.7   8
Valiant           18.1   6

การสร้าง Boxplot

สคริปต์ด้านล่างนี้จะสร้างกราฟบ็อกซ์พล็อตสำหรับความสัมพันธ์ระหว่าง mpg (ไมล์ต่อแกลลอน) และกระบอกสูบ (จำนวนกระบอกสูบ)

# Give the chart file a name.
png(file = "boxplot.png")

# Plot the chart.
boxplot(mpg ~ cyl, data = mtcars, xlab = "Number of Cylinders",
   ylab = "Miles Per Gallon", main = "Mileage Data")

# Save the file.
dev.off()

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Boxplot พร้อม Notch

เราสามารถวาด boxplot ด้วยรอยบากเพื่อดูว่าค่ามัธยฐานของกลุ่มข้อมูลต่างๆจับคู่กันอย่างไร

สคริปต์ด้านล่างนี้จะสร้างกราฟบ็อกซ์พล็อตที่มีรอยบากสำหรับแต่ละกลุ่มข้อมูล

# Give the chart file a name.
png(file = "boxplot_with_notch.png")

# Plot the chart.
boxplot(mpg ~ cyl, data = mtcars, 
   xlab = "Number of Cylinders",
   ylab = "Miles Per Gallon", 
   main = "Mileage Data",
   notch = TRUE, 
   varwidth = TRUE, 
   col = c("green","yellow","purple"),
   names = c("High","Medium","Low")
)
# Save the file.
dev.off()

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -