สร้าง Visualization ใน R ด้วย ggplot2

  1. ggplot2
    1. ตัวอย่างกราฟที่สร้างด้วย library(ggplot2)
  2. การสร้างกราฟใน R ด้วย ggplot2
    1. 1. ตัวแปร Discrete
      1. ตัวอย่างเช่น
    2. 2.ตัวแปร Continuous
      1. ตัวอย่างเช่น
  3. Mapping and Setting
    1. Mapping vs. Setting ใช้ต่างกันยังไง
      1. “Mapping”
      2. “Setting”
  4. ตัวอย่างการเขียนโค้ดเบื้องต้น
    1. Histogram
    2. Scatterplot

ggplot2

ggplot2 cheat sheet

ggplot2 เป็น หนึ่งใน library(tidy verse) ที่สามาร plot กราฟออกมาได้หลากหลายรูปแบบมากไม่ว่าจะเป็น

  • Histogram
  • Bar plot
  • Scatter plot
  • Box plot
  • Violin plot
  • etc.

ตัวอย่างกราฟที่สร้างด้วย library(ggplot2)

การสร้างกราฟใน R ด้วย ggplot2

การสร้างกราฟด้วย ggplot2 นั้น ตัวโค้ดจริงนั้นไม่ยากครับ เพียงแต่ว่าเราต้องเลือกกราฟให้ถูกกับตัวแปรที่เราจะนำไป plot ซึ่งแบ่งหลักๆออกเป็น 2 ประเภทอิงจาก ggplot2 cheat sheet เลย

1. ตัวแปร Discrete

ตัวแปร Discrete แปรตรงตัว ก็คือ ตัวแปรไม่ต่อเนื่อง แล้ว…? ไม่ต่อเนื่องแบบไหนล่ะ

คือ การที่มันนับแบบ 1 2 3 4 ได้ จะไม่มีค่าระหว่างเลขสองตัวแบบ 1 และ 2 ก็จะไม่มี 1.23 หรือ 1.86 แบบนี้ ซึ่งการที่มันไม่มีค่าระหว่างเลขสองตัวแบบนี้เนี่ย ทำให้การนับ เป็นไปอย่างจำกัด เช่น จะไม่มีค่ามาทำนอง 1.3333… ซ้ำไปแบบไม่รู้จบ

ตัวอย่างเช่น

  • จำนวนสินค้าที่ขายได้ในแต่ละวัน
  • จำนวนนักเรียนในห้องเรียน(คือจะไม่มีมาแบบ 3.5 คน แบบนี้ไม่มี)
  • จำนวนหน้าลูกเต๋า
  • จำนวนประเทศในโลก
  • จำนวนต้นไม่ในป่า

2.ตัวแปร Continuous

ตัวแปร Continuos ก็คือแบบต่อเนื่อง ตรงข้ามกับแบบ Discrete เลย

คือ จะมีช่วงของค่าที่ไม่จำกัด เช่น 1.33333333….. ได้แบบนี้เรียก Continous ยกตัวอย่างจะเข้าใจง่ายขึ้น

ตัวอย่างเช่น

  • น้ำหนัก 10.23425…. กิโลกรัม แบบนี้ Continuos เลย
  • ระยะทาง 3.1234444… กิโลเมตร
  • ความสูงของคน 170.455 cm
  • อุณหภมิ 18.23 องศาเซลเซียส

พอเข้าใจ Discrete และ Continuous เราก็มาเทียบกับ ggplot2 cheat sheet ได้ไม่ยากแล้ว

Mapping and Setting

Mapping กับ Setting เป็นอีกเรื่องนึงที่สำคัญหากจะเริ่มต้นลงมือเขียนโค้ด

Mapping vs. Setting ใช้ต่างกันยังไง

“Mapping”

เป็นเหมือน base ที่ยังไม่มีรูปร่างหรือกราฟ ซึ่ง mapping จะผูกติดอยู่กับข้อมูล เช่น

ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) และจะอยู่ใน aes(...) เสมอ

“Setting”

คือ การซ้อนหน้าตาของกราฟลงไป ซึ่งไม่ผูกติดกับข้อมูล เช่น

ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point(color = "blue") คือ ซ้อน กราฟ scatter plot ลงที่ชุดข้อมูล และ ให้จุดแต่ละจุดเป็นสีฟ้าโดยไม่สนใจว่าเป็นข้อมูลชนิดหรือประเภทอะไร

ตัวอย่างการเขียนโค้ดเบื้องต้น

อันดับแรกติดตั้ง library(ggplot2) แต่ส่วนตัวผมถนัดติดตั้ง library(tidyverse) เลย และแน่นอน ตัวอย่าง dataset เริ่มต้นของเรา “mtcars”

Histogram

ggplot(mtcars, aes(x = mpg)) +
  geom_histogram(binwidth = 2, fill = "skyblue", color = "black") +
  theme_minimal()

Scatterplot

mtcars %>%
  select(mpg, hp) %>%
  ggplot(mapping = aes(x = hp,
                       y = mpg)) +
  geom_point(col = "salmon") +
  theme_minimal()

Comments

Leave a comment