วิธีที่จะทำให้ปิรามิดอายุเหมือนพล็อตใน R?


14

Age pyramid มีลักษณะดังนี้: ข้อความแสดงแทน
ฉันต้องการทำสิ่งที่คล้ายกันนั่นคือ 2 barplots (ไม่ใช่ histograms) ที่มีหมวดหมู่เดียวกันหมุนในแนวตั้งและขยายไปทั้งสองด้านเหมือนกับในปิรามิด
มันเป็นวิธีง่ายๆในการทำเช่นนี้ใน R?
มันก็ดีที่จะควบคุมสีของแต่ละแท่ง

คำตอบ:


21

คุณสามารถทำเช่นนี้กับฟังก์ชั่นจากแพคเกจ นี่คือตัวอย่าง:pyramid.plot()plotrix

library(plotrix)
 xy.pop<-c(3.2,3.5,3.6,3.6,3.5,3.5,3.9,3.7,3.9,3.5,3.2,2.8,2.2,1.8,
  1.5,1.3,0.7,0.4)
 xx.pop<-c(3.2,3.4,3.5,3.5,3.5,3.7,4,3.8,3.9,3.6,3.2,2.5,2,1.7,1.5,
  1.3,1,0.8)
 agelabels<-c("0-4","5-9","10-14","15-19","20-24","25-29","30-34",
  "35-39","40-44","45-49","50-54","55-59","60-64","65-69","70-74",
  "75-79","80-44","85+")
 mcol<-color.gradient(c(0,0,0.5,1),c(0,0,0.5,1),c(1,1,0.5,1),18)
 fcol<-color.gradient(c(1,1,0.5,1),c(0.5,0.5,0.5,1),c(0.5,0.5,0.5,1),18)
 par(mar=pyramid.plot(xy.pop,xx.pop,labels=agelabels,
  main="Australian population pyramid 2002",lxcol=mcol,rxcol=fcol,
  gap=0.5,show.values=TRUE))

ซึ่งจบลงด้วยการมองเช่นนี้: ข้อความแสดงแทน


ตกลงจริง ๆ ฉันเขียนมันใหม่อย่างสมบูรณ์เพื่อให้มีตาชั่งที่แตกต่างกันทั้งสองด้าน แต่ดูเหมือนว่าไม่มีอะไรใน R ที่สามารถทำได้โดยกำเนิด

ฉันแน่ใจว่าคุณสามารถทำได้ด้วย ggplot2 แต่มันต้องใช้ความพยายามเล็กน้อย
เชน

นอกจากนี้ยัง @mbq FYI มีความสามารถในปิรามิดแผนภูมิในแพคเกจเอชเอช นี้คำถามเกี่ยวกับเว็บไซต์ที่ให้ตัวอย่างสำหรับข้อมูลประเภท Likert ซึ่งผมคิดสามารถ hacked การผลิตแผนภูมิแท่งที่คล้ายกัน ใน ggplot2 เราจะต้องแสดงจำนวนที่สะท้อนวิธีที่ง่าย ๆ ก็คือให้มีแถบหนึ่งลบและอีกอันเป็นบวก (ไม่แน่ใจว่า ggplot2 รองรับขนาดที่มิร์เรอร์เหมือนแปลงพีระมิด)
Andy W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.