• Tidak ada hasil yang ditemukan

Pir´amide Poblacional

Dalam dokumen grafi3.pdf (Halaman 68-79)

2.3 Gr´aficos especiales en R

2.3.3 Pir´amide Poblacional

Este tipo de gr´aficos permite presentar en forma comparativa, la distribuci´on de la poblaci´on, por rangos de edad, seg´un dos grupos, por ejemplo, hombres y mujeres. Una pir´amide poblacional puede construirse en R a partir de las dos siguientes funciones:

piramide1<-function(hombres,mujeres,amplitud,escalax, edadmax,region){

max1<-max(c(hombres,mujeres)) n<-length(hombres)

0 5 10 15 20

0 1 2 3 4 5

dias

paciente

inicio fallo E1 E2 E1,2 censura

Carta Evento

Seguiemiento de 4 pacientes

Figura 2.25: Esta gr´afica presenta el gr´afico de eventos considerando la ocur- rencia de los eventos especiales E1, E2, y E1,2 para los datos supuestos en un experimento en el cual se observan los tiempos de vida de cuatro in- dividuos sometidos a un tratamiento espec´ıfico. Es obtenida con f ig1 <

−carta.eventos(paciente, inicio, dias, censura, especiales,1)

0 5 10 15 20

0 1 2 3 4 5

dias

paciente

inicio fallo E1 E2 E1,2 censura

Carta Evento

Seguiemiento de 4 pacientes

Figura 2.26: Esta gr´afica presenta el gr´afico de eventos sin consid- erar la ocurrencia de los eventos especiales E1, E2, y E1,2 para los mismos datos del ejemplo previo. Es obtenida con f ig2 <

−carta.eventos(paciente, inicio, dias, censura)

#Simetrizar la figura, ubicando datos de las mujeres

#a la izquierda de los hombres,

#Utilizar el factor de escala ’excalax’ para el eje x:

min.x<--(max1%/%escalax+1)*escalax max.x<-(max1%/%escalax+1)*escalax

#Abrir una ventana para el gr´afico

plot(0,0,type="n",xaxt=’n’,yaxt=’n’,ylim=c(0,edadmax+5), xlim=c(min.x,max.x),xlab="",ylab="")

#el anterior plot se utiliza para abrir

#la ventana de gr´aficos

#pero observe type="n",

#con ello se indica que no despliegue

#ning´un gr´afico y

#xaxt=’n’,yaxt=’n’ hace que los

#ejes no sean dibujados

#dibujar ejes y etiquetarlos:

ejex1<-seq(0,max1,by=escalax) ejex2<--ejex1[order(-ejex1)]

ejex<-c(ejex2,ejex1)

axis(1,at=ejex,labels=as.character(abs(ejex)), cex.axis=0.8,las=2)

ejey<-c(seq(0,edadmax,by=amplitud))

axis(2,at=ejey,labels=as.character(ejey),cex.axis=0.8,las=2) for(i in 1:n){

x1<-0

x2<-hombres[i] x3<--mujeres[i]

#permitir´a que los datos de las mujeres queden a la

#izquierda del grafico.

#las dos siguientes lineas

#definen los ticks de la escala de edad seg´un

#la amplitud (igual) de los intervalos elegidos:

y1<-(i-1)*amplitud y2<-y1+amplitud

#para dibujar la distribuci´on de los hombres

#llamamos la funci´on rect del R:

rect(x1,y1,x2,y2,col=’red’)

#para dibujar la distribuci´on de las mujeres en el

#mismo grafico, llamamos la funci´on

#rect de nuevo:

rect(x1,y1,x3,y2,col=’blue’)

#en la funci´on rect las coordenadas del rect´angulo

#se dan en orden x izquierdo, e

#inferior, x derecho, y superior }

#Ubicar leyendas y titulo:

x.l1<--max1/16-1.5*escalax x.l2<-max1/16+escalax title(main=paste("Pir´amide

Poblacional",sep="\n",region),ylab="edad")

legend(x.l1,edadmax+5,"mujeres",bty="n",xjust=1) legend(x.l2,edadmax+5,"hombres",bty="n")

}

Ejemplo 1: Pir´amide poblacional para la ciudad de Medell´ın seg´un censo de 1993:

pob<-read.table("c:/graficosr/datosgraficos/pobmedellin.txt", header=T)

> pob

grupoedad hombres mujeres

1 0-4 77674 75632

2 5-9 79523 77809

3 10-14 78607 79028

4 15-19 64907 76456

5 20-24 68331 86469

6 25-29 76046 92316

7 30-34 71487 84937

8 35-39 55728 69383

9 40-44 44853 54049

10 45-49 33646 40652 11 50-54 27500 34709 12 55-59 20762 27312 13 60-64 18981 26097 14 65-69 13516 18318

15 70-74 9510 13770

16 75-79 6190 9268

17 80-84 3490 5749

18 85-+ 2430 4835

mujeres<-pob[,3]

hombres<-pob[,2]

max(max(mujeres),max(hombres)) [1] 92316

#Por lo anterior un factor de escala

#apropiada en eje x es de 10000 amplitud<-5

escalax<-10000 edadmax<-90

region<-"Medell´ın"

fig<-piramide1(hombres,mujeres,amplitud,escalax, edadmax,region)

Ejemplo 2: Otro posible presentaci´on de una pir´amide poblacional puede ser tambi´en como la que ofrece la siguiente funci´on:

piramide2<-function(hombres,mujeres,amplitud,escalax, edadmax,region){

max1<-max(c(hombres,mujeres)) min.x<--(max1%/%escalax+1)*escalax max.x<-(max1%/%escalax+1)*escalax n<-length(hombres)

plot(0,0,type="n",xaxt=’n’,yaxt=’n’,ylim=c(0,edadmax+5), xlim=c(min.x-2*escalax,max.x+2*escalax),xlab="",ylab="") ejex1<-seq(2*escalax,max.x+2*escalax,,by=escalax)

ejex2<--ejex1[order(-ejex1)]

ejex<-c(ejex2,ejex1)

ejexe1<-seq(0,max.x,by=escalax)

90000 80000 70000 60000 50000 40000 30000 20000 10000 00 10000 20000 30000 40000 50000 60000 70000 80000 90000 0

5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90

Pirámide Poblacional Medellín

edad

mujeres hombres

Figura 2.27: Pir´amide poblacional con base en datos del ´ultimo censo efectu- ado en octubre de 1993, constru´ıda con la funci´on ‘piramide1’.

ejexe2<--ejexe1[order(-ejexe1)]

ejexe<-c(ejexe2,ejexe1)

axis(1,at=ejex,labels=as.character(abs(ejexe)), cex.axis=0.8,las=2)

ejey<-c(seq(0,edadmax,by=amplitud))

axis(2,at=ejey,labels=as.character(ejey), cex.axis=0.6,las=2,pos=0)

for(i in 1:n){

x1<-2*escalax

x2<-hombres[i]+2*escalax x3<--mujeres[i]-2*escalax y1<-(i-1)*amplitud

y2<-y1+amplitud

rect(x1,y1,x2,y2,col=’red’) rect(-x1,y1,x3,y2,col=’blue’) }

x.l1<--max1/16-2.5*escalax x.l2<-max1/16+2*escalax

title(main=paste("Pir´amide Poblacional",sep="\n",region)) legend(x.l1,edadmax+5,"mujeres",bty="n",xjust=1)

legend(x.l2,edadmax+5,"hombres",bty="n")

legend(0,edadmax+10,"edad",bty=’n’,xjust=0.5,adj=c(0.5,0.5)) }

Que aplicada sobre los datos de poblaci´on para la ciudad de Medell´ın:

amplitud<-5 escalax<-10000 edadmax<-90

region<-"Medell´ın"

fig<-piramide2(hombres,mujeres,amplitud,escalax, edadmax,region)

1e+05 90000 80000 70000 60000 50000 40000 30000 20000 10000 0 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 1e+05

0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90

Pirámide Poblacional Medellín

mujeres hombres

edad

Figura 2.28: Pir´amide poblacional obtenida con la funci´on ‘piramide2’.

Cap´ıtulo 3

Gr´ aficos Multivariables en R

3.1 Gr´ aficos de Dispersi´ on

Es tal vez el m´as antiguo de los gr´aficos multivariables. Est´a limitado a la presentaci´on de dos variables, aunque se pueden realizar modificaciones de tal forma que nos permita incluir m´as.

En R obtenemos este gr´afico mediante la funci´on plot:

plot(x, ...)

plot(x, y, xlim=range(x), ylim=range(y), type="p", main, xlab, ylab, ...)

plot(y ~ x, ...) Donde:

x: Objeto que contiene las coordenadas de los puntos del gr´afico.

y: Las coordenadas y de los puntos, sin embargo resulta innecesario cuando el objeto x tiene la estructura apropiada para dar ambas coor- denadas

xlim, ylim: Los rangos para los ejes x ey respectivamente.

type: Para especificar el tipo de gr´afico, as´ı : 1. “p” para puntos, lo cual es por defecto 2. “l” para trazar l´ıneas entre los puntos 3. “b” para puntos y l´ıneas

4. “o” para puntos y l´ıneas superpuestos

5. “h” para un histograma pero en vez de rect´angulos traza l´ıneas verticales

6. “s” Para gr´aficos en escala 7. “S” Otros gr´aficos en escala

8. “n” Para que no aparezca el gr´afico.

main: Para titular al gr´afico.

xlab, ylab: Para etiquetar a los ejes.

...: Otros par´ametros gr´aficos.

En el argumento “type” se especifica igual a “p” para representar las ob- servaciones por puntos, aunque este es el valor por defecto y por tanto no es necesario especificarlo. En el siguiente ejemplo se observa el uso de esta funci´on:

preciosr9<-matrix(scan("c:/graficosr/graficos/r9.txt"), ncol=13,byrow=T)

ano<-preciosr9[1,]

valor<-preciosr9[2,]

plot(ano,valor,main=’Precio de Oferta Renault 9 vs. A~no’,xlab=’a~no’,ylab=’valor’,pch=19)

Dalam dokumen grafi3.pdf (Halaman 68-79)