วิธีวางซ้อนแผนความหนาแน่นใน ggplot2 (พร้อมตัวอย่าง)
แผนภาพความหนาแน่น เป็นวิธีที่มีประโยชน์ในการแสดงภาพการกระจายของค่าในชุดข้อมูล
บ่อยครั้งคุณอาจต้องการดูแผนที่ความหนาแน่นของตัวแปรหลายตัวพร้อมกัน โชคดีที่ทำได้ง่ายโดยใช้แพ็คเกจการแสดงข้อมูล ggplot2 ใน R โดยมีไวยากรณ์ต่อไปนี้:
ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )
อาร์กิวเมนต์ อัล ฟ่าควบคุมความทึบของพล็อตความหนาแน่นแต่ละอัน สิ่งสำคัญคือต้องตั้งค่านี้ให้ต่ำกว่า 1 เพื่อให้คุณสามารถดูแผนผังความหนาแน่นแต่ละแบบที่ทับซ้อนกันได้
ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ขั้นตอนที่ 1: สร้างข้อมูล
ขั้นแรก เรามาสร้างชุดข้อมูลปลอมที่มีตัวแปร 3 ตัวกันก่อน:
#make this example reproducible set. seeds (1) #createdata df <- data. frame (var1=rnorm(1000, mean=0, sd=1), var2=rnorm(1000, mean=0, sd=3), var3=rnorm(1000, mean=3, sd=2)) #view first six rows of data head(df) var1 var2 var3 1 -0.6264538 3.4048953 1.2277008 2 0.1836433 3.3357955 -0.8445098 3 -0.8356286 -2.6123329 6.2394015 4 1.5952808 0.6321948 4.0385398 5 0.3295078 0.2081869 2.8883001 6 -0.8204684 -4.9879466 4.3928352
ขั้นตอนที่ 2: แปลงข้อมูลจากกว้างไปยาว
ต่อไป เราต้องแปลงข้อมูลจากรูปแบบกว้างเป็นรูปแบบยาวเพื่อให้เข้ากันได้กับ ggplot2:
library (reshape) #convert from wide format to long format data <- melt(df) #view first six rows head(data) variable value 1 var1 -0.6264538 2 var1 0.1836433 3 var1 -0.8356286 4 var1 1.5952808 5 var1 0.3295078 6 var1 -0.8204684
ขั้นตอนที่ 3: สร้างแผนความหนาแน่นที่ทับซ้อนกัน
สุดท้ายนี้ เราสามารถสร้างแผนความหนาแน่นที่ซ้อนทับได้:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )

คุณสามารถปรับค่า อัลฟ่า เพื่อทำให้แผนผังความหนาแน่นมีความโปร่งใสมากขึ้นหรือน้อยลงก็ได้
ตัวอย่างเช่น แผนภาพจะมีลักษณะเช่นนี้หากเราเพิ่มค่าอัลฟ่า:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .7 )

แหล่งข้อมูลเพิ่มเติม
วิธีสร้างแผนภูมิแกนต์ใน R โดยใช้ ggplot2
วิธีสร้าง boxplot ที่จัดกลุ่มใน R โดยใช้ ggplot2
วิธีสร้างแปลงแบบเคียงข้างกันใน R โดยใช้ ggplot2