วิธีสร้างฮิสโตแกรมด้วยสีต่างๆ ใน r


บ่อยครั้งคุณอาจต้องการสร้างฮิสโตแกรมที่มีสีต่างๆ หลายสีใน R

ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการในฐาน R และ ggplot2

ตัวอย่างที่ 1: ฮิสโตแกรมที่มีสีต่างกันในฐาน R

รหัสต่อไปนี้แสดงวิธีการสร้างฮิสโตแกรมที่มีสีเดียวในฐาน R:

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#create histogram
hist(df$x)

ตามค่าเริ่มต้น สีแท่งทั้งหมดจะเหมือนกันในฮิสโตแกรม

อย่างไรก็ตาม เราสามารถใช้โค้ดต่อไปนี้เพื่อสร้างฮิสโตแกรมที่มีสีต่างกันสามสี:

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#define histogram break points
hist_breaks <- hist(df$x)$breaks

#define colors to use in histogram based on break points
color_list <- rep(' red ', length(hist_breaks))
color_list[hist_breaks < 20 ] <- ' blue '
color_list[hist_breaks < 16 ] <- ' purple '

#create histogram with custom colors
hist(df$x, col=color_list)

ฮิสโตแกรมที่มีสีต่างกันใน R

ต่อไปนี้เป็นวิธีการทำงานของตรรกะเพื่อสร้างสีทั้งสามสี:

  • ขั้นแรก เราระบุว่าแต่ละแถบเป็น สีแดง
  • จากนั้นเราเปลี่ยนทุกแถบที่มีเบรกพอยต์น้อยกว่า 20 ให้เป็น สีน้ำเงิน
  • จากนั้นเราเปลี่ยนทุกแถบที่มีเบรกพอยต์น้อยกว่า 16 ให้เป็น สีม่วง

ผลลัพธ์ที่ได้คือฮิสโตแกรมสามสี

ตัวอย่างที่ 2: ฮิสโตแกรมที่มีสีต่างกันใน ggplot2

สมมติว่าเรามี data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#view data frame
df

    x
1 12
2 14
3 14
4 15
5 15
6 17
7 19
8 22
9 23
10 23
11 24

หากต้องการสร้างฮิสโตแกรมที่มีสีต่างกันสำหรับกรอบข้อมูลนี้ ก่อนอื่นเราต้องสร้างตัวแปรการจัดกลุ่มสำหรับค่าโดยใช้ คำสั่ง if else ที่ซ้อนกัน :

 #create grouping variable
df$group = ifelse(df$x < 16 , ' C ', ifelse(df$x < 20 , ' B ', ' A '))

#view updated data frame
df

    x group
1 12 C
2 14C
3 14C
4 15C
5 15C
6 17 B
7 19 B
8 22 A
9 23 A
10 23 A
11 24 A

ตอนนี้เราสามารถสร้างฮิสโตแกรมใน ggplot2 และตั้งค่าสีในพล็อตโดยใช้ตัวแปรกลุ่ม:

 #create histogram with custom colors
ggplot(df, aes(x, fill=group)) +
  geom_histogram(bins= 6 , color=' black ') +
   scale_fill_manual(values = c(' A ' = ' red ',
                                ' B ' = ' blue ',
                                ' C ' = ' purple '))

ผลลัพธ์ที่ได้คือฮิสโตแกรมสามสี

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับ scale_fill_manual() ที่นี่

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

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

วิธีสร้างฮิสโตแกรมความถี่สัมพัทธ์ใน R
วิธีการวางซ้อนเส้นโค้งปกติบนฮิสโตแกรมใน R
วิธีระบุตัวแบ่งฮิสโตแกรมใน R

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

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