แผนภูมิแท่งและฮิสโตแกรมใน R พร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

แผนภูมิแท่งและฮิสโตแกรมใน R สร้างขึ้นโดยใช้ ggplot2 โดยใช้ geom_bar() สำหรับจำนวนนับแบบจัดกลุ่ม และ geom_histogram() สำหรับการกระจายแบบต่อเนื่อง บทแนะนำนี้จะปรับแต่งสีและกลุ่มต่างๆpingรวมถึงการเรียงซ้อน การวางแนว การจัดกลุ่ม และป้ายกำกับภายในแท่งกราฟในชุดข้อมูล mtcars

  • 📊 ความแตกต่างหลัก: แผนภูมิแท่งใช้สรุปข้อมูลตัวแปรเชิงหมวดหมู่ ในขณะที่ฮิสโตแกรมใช้แบ่งตัวแปรต่อเนื่องตัวเดียวออกเป็นช่วงๆ
  • 🧱 ไวยากรณ์ของกราฟิก: กราฟแต่ละอันจะรวมชุดข้อมูลและแผนที่ aes() เข้าด้วยกันpingและวัตถุทางเรขาคณิตที่เชื่อมต่อด้วยเครื่องหมายบวก
  • 🎨 การควบคุมสี: ใส่ fill ไว้ภายใน geom_bar() เพื่อให้ได้สีเดียวสม่ำเสมอ และใส่ไว้ภายใน aes() เพื่อกำหนดสีให้กับแท่งตามกลุ่ม
  • 📐 การปรับตำแหน่ง: position = “fill” จะแปลงจำนวนนับเป็นเปอร์เซ็นต์ และ position_dodge() จะวางแท่งกราฟที่จัดกลุ่มไว้เคียงข้างกัน
  • 🔢 การพล็อตค่า: ส่งค่าสถิติ “identity” เมื่อแกน y มีค่าสถิติที่คำนวณไว้แล้ว เช่น ค่าเฉลี่ยของกลุ่ม
  • 📏 การแบ่งช่วงฮิสโตแกรม: กำหนดค่า bin หรือ binwidth ใน geom_histogram() เนื่องจากค่าเริ่มต้น 30 bin มักไม่เหมาะสมกับข้อมูล

แผนภูมิแท่งฮิสโตแกรมใน R

แผนภูมิแท่งใน R คืออะไร?

แผนภูมิแท่งเป็นวิธีที่ดีในการแสดงตัวแปรหมวดหมู่ในแกน x กราฟประเภทนี้แสดงถึงสองด้านในแกน y

  1. วิธีแรกคือการนับจำนวนครั้งที่ปรากฏในแต่ละกลุ่ม
  2. กราฟที่สองแสดงค่าสถิติสรุป (ค่าต่ำสุด ค่าสูงสุด ค่าเฉลี่ย และอื่นๆ) ของตัวแปรบนแกน y

คุณจะใช้ชุดข้อมูล mtcars ซึ่งมีตัวแปรดังต่อไปนี้:

  • cyl: จำนวนกระบอกสูบในรถ ตัวแปรตัวเลข
  • am: ประเภทเกียร์ 0 สำหรับเกียร์อัตโนมัติ และ 1 สำหรับเกียร์ธรรมดา เกียร์แปรผันตัวเลข
  • mpg: ไมล์ต่อแกลลอน ตัวแปรตัวเลข

เนื่องจากฮิสโตแกรมมีลักษณะคล้ายคลึงกันมาก จึงควรตรวจสอบความแตกต่างให้ชัดเจนก่อนที่จะเขียนโค้ดใดๆ

แผนภูมิแท่งและฮิสโตแกรมใน R: ความแตกต่างที่สำคัญ

แผนภูมิทั้งสองดูคล้ายกัน และมักทำให้เกิดความสับสนอยู่เสมอ แผนภูมิทั้งสองตอบคำถามต่างกันและใช้รูปทรงเรขาคณิตที่แตกต่างกัน

หลักเกณฑ์ แผนภูมิบาร์ Histogram
ตัวแปรแกน X ประเภทหรือปัจจัย ต่อเนื่องและเชิงตัวเลข
บาร์นั้นหมายถึงอะไร หนึ่งหมวดหมู่ ช่วงค่าหนึ่งช่วง หรือหนึ่งช่อง
ช่องว่างระหว่างแท่ง ใช่แล้ว หมวดหมู่ต่างๆ แยกออกจากกัน ไม่ ถังขยะอยู่ติดกัน
สั่งเครื่องดื่มที่บาร์ สามารถจัดเรียงใหม่ได้อย่างอิสระ แก้ไขโดยมาตราส่วนตัวเลข
คำถามได้รับคำตอบแล้ว กลุ่มต่างๆ มีความแตกต่างกันอย่างไร? ตัวแปรหนึ่งตัวมีการกระจายตัวอย่างไร?
อ็อบเจ็กต์ ggplot2 geom_bar() geom_histogram()

หลักการโดยทั่วไปคือ: ถ้าการเรียงลำดับแท่งกราฟใหม่ยังคงมีความหมาย คุณก็จะได้แผนภูมิแท่ง แต่ถ้าการเรียงลำดับแท่งกราฟใหม่ทำให้ความหมายเสียไป คุณก็จะได้ฮิสโตแกรม สำหรับการสรุปข้อมูลตามควอไทล์ของตัวแปรต่อเนื่องเดียวกัน ให้ใช้... พล็อตกล่อง.

วิธีการสร้างแผนภูมิแท่งใน R

เพื่อสร้างกราฟใน Rคุณสามารถใช้ไลบรารี ggplot ซึ่งสร้างกราฟที่พร้อมสำหรับการเผยแพร่ ไวยากรณ์พื้นฐานของไลบรารีนี้คือ:

ggplot(data, mapping = aes()) +
geometric object 

arguments: 
data: dataset used to plot the graph 
mapping: Control the x and y-axis 
geometric object: The type of plot you want to show. The most common objects are:

- Point: `geom_point()`
- Bar: `geom_bar()`
- Line: `geom_line()`
- Histogram: `geom_histogram()` 

บทช่วยสอนนี้เน้นที่ออบเจ็กต์ทางเรขาคณิต geom_bar() ซึ่งใช้ในการวาดแผนภูมิแท่ง และ geom_histogram() สำหรับข้อมูลต่อเนื่อง

แผนภูมิแท่ง: นับ

กราฟแรกของคุณแสดงความถี่ของทรงกระบอกด้วย geom_bar() โค้ดด้านล่างเป็นไวยากรณ์พื้นฐานที่สุด

library(ggplot2)
# Most basic bar chart
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar()

Code คำอธิบาย

  • คุณส่งชุดข้อมูล mtcars ไปที่ ggplot
  • ภายในอาร์กิวเมนต์ aes() คุณกำหนดค่าแกน x ให้เป็นตัวแปรแฟกเตอร์ cyl
  • เครื่องหมาย + หมายถึงคุณต้องการให้ R อ่านโค้ดต่อไป ซึ่งจะทำให้โค้ดอ่านง่ายขึ้นโดยการทำลายโค้ด
  • ใช้ geom_bar() สำหรับวัตถุทางเรขาคณิต

Output:

แผนภูมิแท่ง: นับ

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณแปลงตัวแปรเป็นปัจจัย มิฉะนั้น R จะถือว่าตัวแปรเป็นตัวเลข ดูตัวอย่างด้านล่าง

แผนภูมิแท่ง: นับ

ปรับแต่งกราฟ

สามารถส่งผ่านข้อโต้แย้งสี่ข้อเพื่อปรับแต่งกราฟ:

- `stat`: Controls what is plotted on the y-axis. By default `count`, which tallies rows. To plot a value you already computed, pass `stat = "identity"`
- `alpha`: Control density of the color
- `fill`: Change the color of the bar
- `size`: Control the size the bar	

เปลี่ยนสีของแถบ

คุณสามารถเปลี่ยนสีของแถบได้ โปรดทราบว่าสีของแท่งจะคล้ายกันทั้งหมด

# Change the color of the bars
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar(fill = "coral") +
    theme_classic()

Code คำอธิบาย

  • สีของแท่งกราฟถูกควบคุมโดยแผนที่ aes()ping ภายในวัตถุทางเรขาคณิต (เช่น ไม่ใช่ภายในฟังก์ชัน ggplot()) คุณสามารถเปลี่ยนสีได้โดยใช้พารามิเตอร์ fill ในที่นี้ คุณเลือกสีปะการัง

Output:

เปลี่ยนสีของแถบ

คุณสามารถใช้รหัสนี้:

grDevices::colors()

เพื่อดูสีทั้งหมดที่มีใน R มีประมาณ 650 สี

เปลี่ยนความเข้ม

คุณสามารถเพิ่มหรือลดความเข้มของสีของแท่งได้

# Change intensity
ggplot(mtcars,
        aes(factor(cyl))) +
    geom_bar(fill = "coral",
        alpha = 0.5) +
    theme_classic()

Code คำอธิบาย

  • ในการเพิ่ม/ลดความเข้มของแถบ คุณสามารถเปลี่ยนค่าอัลฟาได้ ค่าอัลฟามากจะเพิ่มความเข้ม และค่าอัลฟาน้อยจะลดความเข้ม ค่าอัลฟาอยู่ระหว่าง 0 ถึง 1 ที่ค่า 1 สีจะตรงกับจานสีอย่างแม่นยำ ที่ค่า 0 แถบจะมองไม่เห็น ในที่นี้คุณเลือกค่าอัลฟา = 0.5

Output:

เปลี่ยนความเข้ม

ระบายสีตามกลุ่ม

คุณสามารถเปลี่ยนสีของแถบได้ ซึ่งหมายถึงสีที่แตกต่างกันหนึ่งสีสำหรับแต่ละกลุ่ม ตัวอย่างเช่น ตัวแปรทรงกระบอกมีสามระดับ จากนั้นคุณสามารถลงจุดแผนภูมิแท่งด้วยสีสามสีได้

# Color by group
ggplot(mtcars, aes(factor(cyl),
        fill = factor(cyl))) +
    geom_bar()

Code คำอธิบาย

  • อาร์กิวเมนต์ `fill` ภายในฟังก์ชัน `aes()` จะเปลี่ยนสีของแท่งกราฟ คุณสามารถเปลี่ยนสีได้โดยการตั้งค่า `fill = x-axis variable` ในตัวอย่างของคุณ ตัวแปรแกน x คือ `cyl` ดังนั้น `fill = factor(cyl)`

Output:

สีตามกลุ่ม

เพิ่มกลุ่มในแถบ

คุณสามารถแยกแกน y เพิ่มเติมตามระดับปัจจัยอื่นได้ เช่น คุณสามารถนับจำนวนเกียร์อัตโนมัติและเกียร์ธรรมดาตามประเภทของกระบอกสูบได้

คุณจะดำเนินการดังต่อไปนี้:

  • ขั้นตอนที่ 1: สร้าง data frame ด้วยชุดข้อมูล mtcars
  • ขั้นตอนที่ 2: กำหนดป้ายกำกับตัวแปร am ด้วย auto สำหรับเกียร์อัตโนมัติและ man สำหรับเกียร์ธรรมดา แปลง am และ cyl เป็นตัวประกอบเพื่อที่คุณจะไม่จำเป็นต้องใช้ factor() ในฟังก์ชัน ggplot()
  • ขั้นตอนที่ 3: วาดแผนภูมิแท่งเพื่อนับจำนวนการส่งกำลังตามกระบอกสูบ
library(dplyr)
# Step 1
data <- mtcars %>% 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

เมื่อเตรียมชุดข้อมูลพร้อมแล้ว คุณสามารถสร้างกราฟได้:

# ขั้นตอนที่ 3

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar() +
    theme_classic()

Code คำอธิบาย

  • การเรียก ggplot() จะรับข้อมูลชุดข้อมูลและแผนที่ aes()ping.
  • ใน aes() คุณรวมตัวแปรแกน x และตัวแปรใดที่จำเป็นในการเติมแท่ง (เช่น am)
  • geom_bar(): สร้างแผนภูมิแท่ง

Output:

เพิ่มกลุ่มในบาร์

แผนที่ping จะเติมสีลงในแท่งกราฟสองสี โดยแต่ละสีแทนระดับหนึ่งๆ การเปลี่ยนกลุ่มทำได้ง่ายดายโดยการเลือกตัวแปรปัจจัยอื่นๆ ในชุดข้อมูล

แผนภูมิแท่งเป็นเปอร์เซ็นต์

คุณสามารถเห็นภาพแถบเป็นเปอร์เซ็นต์แทนการนับดิบได้

# แผนภูมิแท่งเป็นเปอร์เซ็นต์

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = "fill") +
    theme_classic()

Code คำอธิบาย

  • ใช้ตำแหน่ง = “เติม” ในอาร์กิวเมนต์ geom_bar() เพื่อสร้างกราฟิกที่มีเปอร์เซ็นต์ในแกน y

Output:

แผนภูมิแท่งเป็นเปอร์เซ็นต์

แถบด้านข้าง

เป็นเรื่องง่ายที่จะลงจุดแผนภูมิแท่งโดยมีตัวแปรกลุ่มอยู่เคียงข้างกัน

# Bar chart side by side
ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = position_dodge()) +
    theme_classic()

Code คำอธิบาย

  • position=position_dodge(): บอกวิธีจัดเรียงแท่งอย่างชัดเจน

Output:

แถบด้านข้าง

แผนภูมิแท่งพร้อมสถิติสรุป

ในส่วนที่สองของบทเรียนนี้ แกน y จะแสดงค่าที่คำนวณได้แทนที่จะเป็นจำนวนนับ โปรดทราบว่านี่เป็นแผนภูมิแท่งอยู่ดี ฮิสโตแกรมที่แท้จริงจะกล่าวถึงในส่วนถัดไป และจะใช้รูปทรงเรขาคณิตที่แตกต่างออกไป

วัตถุประสงค์ของคุณคือสร้างกราฟด้วยไมล์เฉลี่ยต่อแกลลอนสำหรับกระบอกสูบแต่ละประเภท ในการวาดกราฟข้อมูล คุณจะต้องทำตามขั้นตอนเหล่านี้:

  • ขั้นตอนที่ 1: สร้างตัวแปรใหม่ด้วยไมล์เฉลี่ยต่อแกลลอนต่อกระบอกสูบ
  • ขั้นตอนที่ 2: สร้างฮิสโตแกรมพื้นฐาน
  • ขั้นตอนที่ 3: เปลี่ยนการวางแนว
  • ขั้นตอนที่ 4: เปลี่ยนสี
  • ขั้นตอนที่ 5: เปลี่ยนขนาด
  • ขั้นตอนที่ 6: เพิ่มป้ายกำกับให้กับกราฟ

ขั้นตอน 1) สร้างตัวแปรใหม่

คุณสร้างกรอบข้อมูลชื่อ data_histogram ซึ่งจะคืนค่าไมล์เฉลี่ยต่อแกลลอนตามจำนวนกระบอกสูบในรถยนต์ คุณเรียกตัวแปรใหม่นี้ว่า "mean_mpg" และปัดเศษค่าเฉลี่ยด้วยทศนิยม 2 ตำแหน่ง

# ขั้นตอนที่ 1

data_histogram <- mtcars %>%
mutate(cyl = factor(cyl)) %>%
group_by(cyl) %>%
summarize(mean_mpg = round(mean(mpg), 2))

ขั้นตอน 2) สร้างฮิสโตแกรมพื้นฐาน

คุณสามารถสร้างฮิสโตแกรมได้ ถึงแม้จะยังไม่สมบูรณ์พอที่จะส่งให้ลูกค้า แต่ก็แสดงให้เห็นถึงแนวโน้มแล้ว

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity")

Code คำอธิบาย

  • ขณะนี้ aes() มีตัวแปรสองตัว ตัวแปรทรงกระบอกอ้างอิงถึงแกน x และ Mean_mpg คือแกน y
  • คุณส่งค่า stat = “identity” เพื่อให้ฟังก์ชัน geom_bar() ใช้ตัวแปรแกน y ตามที่เป็นอยู่แทนที่จะนับจำนวนแถว ค่าเริ่มต้นของ geom_bar() คือ stat = “count”

Output:

Histogram

ขั้นตอน 3) เปลี่ยนการวางแนว

คุณเปลี่ยนการวางแนวของกราฟจากแนวตั้งเป็นแนวนอน

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity") +
    coord_flip()

Code คำอธิบาย

  • คุณสามารถควบคุมการวางแนวของกราฟได้ด้วย coord_flip()

Output:

Histogram

ขั้นตอน 4) เปลี่ยนสี

คุณสามารถแยกความแตกต่างของสีของแท่งตามระดับแฟกเตอร์ของตัวแปรแกน x

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    coord_flip() +
    theme_classic()

Code คำอธิบาย

  • คุณสามารถสร้างกราฟโดยแบ่งกลุ่มด้วยคำสั่ง fill=cyl mappingR จะจัดการเรื่องสีโดยอัตโนมัติตามระดับของตัวแปร cyl

Output:

Histogram

ขั้นตอน 5) เปลี่ยนขนาด

หากต้องการให้กราฟดูสวยขึ้น คุณจะต้องลดความกว้างของแท่ง

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity",
        width = 0.5) +
    coord_flip() +
    theme_classic()

Code คำอธิบาย

  • พารามิเตอร์ width ในฟังก์ชัน geom_bar() ควบคุมความหนาของแท่งกราฟ ค่าที่มากขึ้นจะทำให้แท่งกราฟกว้างขึ้น
  • กราฟจะถูกจัดเก็บไว้ในกราฟของวัตถุ เนื่องจากขั้นตอนถัดไปจะนำไปใช้ซ้ำโดยไม่เปลี่ยนแปลง การจัดเก็บกราฟระหว่างขั้นตอนจะช่วยให้โค้ดอ่านง่ายขึ้น

Output:

Histogram

ขั้นตอน 6) เพิ่มป้ายกำกับให้กับกราฟ

ขั้นตอนสุดท้ายคือการเพิ่มค่า mean_mpg เป็นป้ายกำกับภายในแท่งกราฟแต่ละแท่ง

graph +
    geom_text(aes(label = mean_mpg),
        hjust = 1.5,
        color = "white",
        size = 3) +
    theme_classic()

Code คำอธิบาย

  • ฟังก์ชัน geom_text() มีประโยชน์ในการควบคุมความสวยงามของข้อความ
    • label=: เพิ่มป้ายกำกับภายในแถบ
    • Mean_mpg: ใช้ตัวแปร Mean_mpg สำหรับป้ายกำกับ
  • hjust ควบคุมตำแหน่งของป้ายกำกับบนแท่งกราฟ ค่าที่ใกล้เคียงกับ 1 จะวางป้ายกำกับไว้ใกล้ปลายแท่งกราฟ และค่าที่มากขึ้นจะเลื่อนป้ายกำกับไปทางแกน หากกราฟมีการวางแนวในแนวตั้ง ให้เปลี่ยน hjust เป็น vjust
  • color=”white”: เปลี่ยนสีของข้อความ ที่นี่คุณใช้สีขาว
  • size=3: กำหนดขนาดของข้อความ

Output:

Histogram

วิธีการเรียงลำดับและติดป้ายกำกับแท่งในแผนภูมิแท่งใน R

สิ่งสำคัญสองประการที่จะทำให้แผนภูมิฉบับร่างแตกต่างจากแผนภูมิที่พร้อมเผยแพร่ ได้แก่ การเรียงลำดับแท่งตามค่า และการติดป้ายกำกับแกนอย่างถูกต้อง

การจัดเรียงแท่งใหม่ โดยค่าเริ่มต้น ggplot2 จะเรียงลำดับระดับปัจจัยตามตัวอักษร ซึ่งแทบจะไม่ใช่ลำดับที่ให้ข้อมูลมากที่สุด หากต้องการเรียงลำดับตามตัวแปรที่สอง ให้ใช้ฟังก์ชัน reorder() ครอบตัวแปร x ไว้:

# Sort the bars from lowest to highest mean_mpg
ggplot(data_histogram, aes(x = reorder(cyl, mean_mpg), y = mean_mpg)) +
    geom_bar(stat = "identity", fill = "coral") +
    theme_classic()

ใส่เครื่องหมายลบนำหน้าตัวแปรการเรียงลำดับ เช่น reorder(cyl, -mean_mpg) เพื่อกลับทิศทางการเรียงลำดับ

เพิ่มชื่อเรื่องและป้ายกำกับแกน ฟังก์ชัน labs() กำหนดค่าให้กับองค์ประกอบข้อความทั้งหมดได้ในการเรียกเพียงครั้งเดียว:

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    labs(title = "Average fuel economy by cylinder count",
        subtitle = "mtcars dataset",
        x = "Number of cylinders",
        y = "Mean miles per gallon",
        fill = "Cylinders",
        caption = "Source: mtcars") +
    theme_classic()

ตั้งค่า fill = NULL ภายใน labs() เพื่อลบชื่อคำอธิบายแผนภูมิออกทั้งหมด และใช้ theme(legend.position = “none”) เพื่อลบคำอธิบายแผนภูมิออกเมื่อแกน x มีชื่อกลุ่มอยู่แล้ว

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

scale_fill_manual(values = c("4" = "#0e9cd1", "6" = "coral", "8" = "grey40"))

วิธีสร้างฮิสโตแกรมใน R ด้วยฟังก์ชัน geom_histogram()

ฮิสโตแกรมแสดงให้เห็นว่าตัวแปรต่อเนื่องตัวเดียวมีการกระจายตัวอย่างไร แทนที่จะนับจำนวนหมวดหมู่ ggplot2 จะแบ่งช่วงตัวเลขออกเป็นช่วงย่อยๆ และนับจำนวนข้อมูลที่ตกอยู่ในแต่ละช่วง

library(ggplot2)
# Most basic histogram
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram()

R จะแสดงข้อความแนะนำให้คุณเลือกจำนวนถังเก็บข้อมูลที่ดีกว่า เนื่องจากค่าเริ่มต้นที่ 30 ถังนั้นเป็นค่าที่กำหนดขึ้นเอง โดยมีอาร์กิวเมนต์สองตัวที่ควบคุมการตั้งค่านี้:

  • ถังขยะจำนวนช่วงที่จะแบ่งช่วงข้อมูลออกเป็นส่วนๆ
  • บินกว้าง: ความกว้างของแต่ละช่วง โดยแสดงในหน่วยของตัวแปร ใช้ตัวเลือกนี้เมื่อหน่วยมีความหมายเหมาะสม
# Set the number of bins
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(bins = 10, fill = "coral", color = "white") +
    theme_classic()

# Or set the width of each bin instead
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(binwidth = 4, fill = "coral", color = "white") +
    theme_classic()

การเลือกจำนวนช่วง (Binning) เป็นสิ่งสำคัญที่สุดในการสร้างฮิสโตแกรม หากใช้จำนวนช่วงน้อยเกินไปจะบดบังโครงสร้างที่แท้จริง เช่น ยอดสูงสุดที่สอง ในขณะที่หากใช้จำนวนช่วงมากเกินไปจะทำให้กราฟกลายเป็นสัญญาณรบกวน ควรลองใช้ค่าต่างๆ หลายๆ ค่าก่อนที่จะตัดสินใจเลือกค่าใดค่าหนึ่ง

การเปรียบเทียบกลุ่มต่างๆ กำหนดค่าตัวประกอบเพื่อเติมและกำหนดตำแหน่งเพื่อให้การกระจายยังคงอ่านง่าย:

ggplot(mtcars, aes(x = mpg, fill = factor(cyl))) +
    geom_histogram(bins = 10, position = "identity", alpha = 0.5) +
    theme_classic()

เมื่อตั้งค่า position = “identity” และลดค่า alpha ลง ฮิสโตแกรมจะซ้อนทับกัน ทำให้คุณสามารถเปรียบเทียบรูปร่างได้โดยตรง หากต้องการดูแต่ละช่วงข้อมูลเคียงข้างกัน ให้ใช้ position = “dodge”

ความหนาแน่นแทนจำนวนนับ เมื่อกลุ่มมีขนาดแตกต่างกัน ให้กำหนดความหนาแน่นของพล็อตเพื่อให้พื้นที่เทียบเคียงกันได้ และซ้อนทับด้วยเส้นโค้งเรียบ:

ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(aes(y = after_stat(density)), bins = 10,
        fill = "coral", alpha = 0.6) +
    geom_density(color = "steelblue", linewidth = 1) +
    theme_classic()

แผนภูมิแท่งและฮิสโตแกรมใน R: Code อ้างอิง

แผนภูมิแท่งเหมาะสำหรับแกน x ที่เป็นข้อมูลเชิงหมวดหมู่ โดยที่แกน y เป็นจำนวนนับหรือสถิติสรุป ตารางด้านล่างแสดงคำสั่ง ggplot2 สำหรับแต่ละรูปแบบที่กล่าวถึงข้างต้น:

วัตถุประสงค์ Code
นับ
ggplot(df, aes(x = factor(x1))) + geom_bar()
นับด้วยสีเติมที่แตกต่างกัน
ggplot(df, aes(x = factor(x1), fill = factor(x1))) + geom_bar()
นับเป็นกลุ่มซ้อนกัน
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar()
นับเป็นกลุ่มเคียงข้างกัน
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = position_dodge())
นับเป็นกลุ่ม ซ้อนกันเป็น %
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = "fill")
ค่าต่างๆ (สถิติสรุป)
ggplot(df, aes(x = factor(x1), y = x2)) + geom_bar(stat = "identity")
ฮิสโตแกรมของตัวแปรต่อเนื่อง
ggplot(df, aes(x = x1)) + geom_histogram(bins = 30)

คำถามที่พบบ่อย

ใช้ฮิสโตแกรมเมื่อตัวแปรบนแกน x เป็นตัวแปรต่อเนื่องและคุณต้องการดูการกระจายของตัวแปรนั้น ใช้แผนภูมิแท่งเมื่อตัวแปรบนแกน x มีหมวดหมู่ที่แตกต่างกันและคุณต้องการเปรียบเทียบหมวดหมู่เหล่านั้น

ภายในฟังก์ชัน `aes()` ฟังก์ชัน `fill` จะแมปตัวแปรกับสี ดังนั้นแต่ละกลุ่มจึงได้รับเฉดสีของตัวเอง ส่วนภายนอกฟังก์ชัน `aes()` ภายในฟังก์ชัน `geom_bar()` ฟังก์ชัน `fill` จะเป็นค่าคงที่ที่ใช้กับทุกแท่งกราฟ

ไม่มีคำตอบที่ตายตัว เริ่มต้นด้วยรากที่สองของจำนวนการสังเกต แล้วค่อยปรับเปลี่ยน จำนวนช่วงข้อมูลที่น้อยเกินไปจะบดบังโครงสร้าง เช่น ยอดสูงสุดที่สอง และจำนวนช่วงข้อมูลที่มากเกินไปจะทำให้กราฟมีสัญญาณรบกวนและแหลมคม

ฮิสโตแกรมเป็นขั้นตอนแรกมาตรฐานในการวิเคราะห์ข้อมูลเชิงสำรวจสำหรับโครงการ AI โดยจะเปิดเผยความเบี่ยงเบน ค่าผิดปกติ และความไม่สมดุลของคลาสก่อนที่จะฝึกโมเดลใดๆ จากนั้นแผนภูมิแท่งจะสรุปความสำคัญของคุณลักษณะและความถี่ของหมวดหมู่

ใช่แล้ว ผู้ช่วย AI สามารถสร้างเลเยอร์ ggplot2 จากคำอธิบายแผนภูมิแบบง่ายๆ และอธิบายข้อผิดพลาดต่างๆ เช่น การขาดอาร์กิวเมนต์ stat ได้ ควรทดสอบโค้ดที่สร้างขึ้นกับข้อมูลของคุณเองเสมอเพื่อยืนยันแผนที่ping ถูกต้อง

สรุปโพสต์นี้ด้วย: