ggplot2 - หลายพล็อต

ในบทนี้เราจะเน้นไปที่การสร้างพล็อตหลาย ๆ จุดซึ่งสามารถนำไปใช้ในการสร้างพล็อต 3 มิติเพิ่มเติมได้ รายการแปลงที่จะกล่าวถึง ได้แก่ -

  • พล็อตความหนาแน่น
  • พล็อตกล่อง
  • Dot Plot
  • พล็อตไวโอลิน

เราจะใช้ชุดข้อมูล“ mpg” ตามที่ใช้ในบทก่อนหน้า ชุดข้อมูลนี้ให้ข้อมูลการประหยัดน้ำมันตั้งแต่ปี 2542 และ 2551 สำหรับรถยนต์ยอดนิยม 38 รุ่น ชุดข้อมูลมาพร้อมกับแพ็คเกจ ggplot2 สิ่งสำคัญคือต้องทำตามขั้นตอนที่กล่าวถึงด้านล่างเพื่อสร้างพล็อตประเภทต่างๆ

> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer  model   displ   year   cyl   trans       drv   cty   hwy  fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4      1.8     1999   4     auto(l5)    f     18    29   p    compa~
2 audi        a4      1.8     1999   4     manual(m5)  f     21    29   p    compa~
3 audi        a4      2       2008   4     manual(m6)  f     20    31   p    compa~
4 audi        a4      2       2008   4     auto(av)    f     21    30   p    compa~
5 audi        a4      2.8     1999   6     auto(l5)    f     16    26   p    compa~
6 audi        a4      2.8     1999   6     manual(m5)  f     18    26   p    compa~

พล็อตความหนาแน่น

พล็อตความหนาแน่นคือการแสดงกราฟิกของการแจกแจงของตัวแปรตัวเลขใด ๆ ในชุดข้อมูลที่กล่าวถึง ใช้การประมาณความหนาแน่นของเคอร์เนลเพื่อแสดงฟังก์ชันความหนาแน่นของความน่าจะเป็นของตัวแปร

แพ็คเกจ“ ggplot2” มีฟังก์ชันที่เรียกว่า geom_density () เพื่อสร้างพล็อตความหนาแน่น

เราจะดำเนินการคำสั่งต่อไปนี้เพื่อสร้างพล็อตความหนาแน่น -

> p −- ggplot(mpg, aes(cty)) +
+  geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p

เราสามารถสังเกตความหนาแน่นต่างๆได้จากพล็อตที่สร้างด้านล่าง -

เราสามารถสร้างพล็อตโดยการเปลี่ยนชื่อแกน x และ y ซึ่งคงความชัดเจนที่ดีขึ้นด้วยการรวมชื่อเรื่องและตำนานด้วยชุดสีที่ต่างกัน

> p + labs(title="Density plot",
+    subtitle="City Mileage Grouped by Number of cylinders",
+    caption="Source: mpg",
+    x="City Mileage",
+    fill="# Cylinders")

พล็อตกล่อง

พล็อตบ็อกซ์เรียกอีกอย่างว่าพล็อตบ็อกซ์และมัสสุแสดงถึงสรุปข้อมูลห้าหมายเลข สรุปตัวเลขห้าค่า ได้แก่ ค่าต่ำสุดควอร์ไทล์แรกค่ามัธยฐานควอร์ไทล์ที่สามและค่าสูงสุด เส้นแนวตั้งที่ผ่านส่วนตรงกลางของพล็อตกล่องถือเป็น "ค่ามัธยฐาน"

เราสามารถสร้าง box plot โดยใช้คำสั่งต่อไปนี้ -

> p <- ggplot(mpg, aes(class, cty)) +
+  geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+    subtitle="Mileage by Class",
+    caption="MPG Dataset",
+    x="Class",
+    y="Mileage")
>p

ที่นี่เรากำลังสร้างพล็อตกล่องเกี่ยวกับคุณสมบัติของคลาสและ cty

Dot Plot

ดอทพล็อตคล้ายกับพล็อตที่กระจัดกระจายโดยมีมิติแตกต่าง ในส่วนนี้เราจะเพิ่ม dot plot ให้กับ box plot ที่มีอยู่เพื่อให้ได้ภาพและความชัดเจนที่ดีขึ้น

พล็อตกล่องสามารถสร้างได้โดยใช้คำสั่งต่อไปนี้ -

> p <- ggplot(mpg, aes(manufacturer, cty)) +
+    geom_boxplot() +
+    theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p

dot plot ถูกสร้างขึ้นตามที่ระบุไว้ด้านล่าง -

> p + geom_dotplot(binaxis='y',
+    stackdir='center',
+    dotsize = .5
+    )

พล็อตไวโอลิน

นอกจากนี้ยังสร้างพล็อตไวโอลินในลักษณะที่คล้ายคลึงกันโดยมีเพียงการเปลี่ยนโครงสร้างของไวโอลินแทนที่จะเป็นกล่อง ผลลัพธ์มีการระบุไว้อย่างชัดเจนด้านล่าง -

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()