Come rendere la piramide dell'età come trama in R?


14

La piramide dell'età assomiglia a questa: testo alternativo
vorrei fare qualcosa di simile, vale a dire un 2 barplot (non istogrammi) con le stesse categorie, ruotato verticalmente e che si estende su entrambi i lati come nella piramide.
È un modo semplice per farlo in R?
Sarebbe anche bello controllare il colore di ogni barra.

Risposte:


21

Puoi farlo con la pyramid.plot()funzione dal plotrixpacchetto. Ecco un esempio:

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))

Che finisce per apparire così: testo alternativo


Ok, in effetti l'ho riscritto completamente per avere scale diverse su entrambi i lati, ma sembra che non ci sia nulla in R che possa farlo in modo nativo.

Sono sicuro che potresti farlo con ggplot2, ma richiederebbe un piccolo sforzo.
Shane,

@mbq Inoltre, nel pacchetto HH esiste una capacità di grafico a piramide . Questa domanda sul sito fornisce esempi di dati di tipo Likert, che immagino possano essere compromessi per produrre grafici a barre simili. In ggplot2 uno dovrebbe visualizzare i conteggi riflessi, un modo semplice è quello di avere solo una barra negativa e l'altra positiva (non sono sicuro che ggplot2 supporti dimensioni speculari come grafici a piramide).
Andy W,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.