Indice
Contents
Gráficas
El presente tutorial está basado en [3].
Leamos de los archivos de datos la información que vamos a usar para nuestras gráficas:
> w1 <- read.csv(file="w1.dat",sep=",",head=TRUE) > names(w1) [1] "vals" > tree <- read.csv(file="trees91.csv",sep=",",head=TRUE) > names(tree) [1] "C" "N" "CHBR" "REP" "LFBM" "STBM" "RTBM" "LFNCC" [9] "STNCC" "RTNCC" "LFBCC" "STBCC" "RTBCC" "LFCACC" "STCACC" "RTCACC" [17] "LFKCC" "STKCC" "RTKCC" "LFMGCC" "STMGCC" "RTMGCC" "LFPCC" "STPCC" [25] "RTPCC" "LFSCC" "STSCC" "RTSCC" >
Aquí leemos a dos variables los datos de los dos archivos que contienen nuestros valores, w1.dat, y trees91.csv, el atributo names(<var>) de la variable tree, me lista los nombres de las columnas, el valor entre [] indica el índice del primer valor desplecado, en otras palabras names(tree) me despliega 28 nombres de las 28 columnas disponibles en trees91.csv.
Para listar los atributos de una variable (u objeto en general), lo puedo hacer con la función attributes:
> attributes(tree) $names [1] "C" "N" "CHBR" "REP" "LFBM" "STBM" "RTBM" "LFNCC" [9] "STNCC" "RTNCC" "LFBCC" "STBCC" "RTBCC" "LFCACC" "STCACC" "RTCACC" [17] "LFKCC" "STKCC" "RTKCC" "LFMGCC" "STMGCC" "RTMGCC" "LFPCC" "STPCC" [25] "RTPCC" "LFSCC" "STSCC" "RTSCC" $class [1] "data.frame" $row.names [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" [16] "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" [31] "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" [46] "46" "47" "48" "49" "50" "51" "52" "53" "54" >
Eso quiere decir que también puedo llamar al atributo class y al atributo row así:
> class(tree) [1] "data.frame" > row(tree) . . .
row(tree) me devolverá 54 filas por 28 columnas, en una matriz.
Si quiero más información de cada una de estas columnas, lo puedo hacer con el comando summary:
> summary(tree)
C N CHBR REP LFBM
Min. :1.000 Min. :1.000 A1 : 3 Min. : 1.00 Min. :0.1300
1st Qu.:2.000 1st Qu.:1.000 A4 : 3 1st Qu.: 9.00 1st Qu.:0.4800
Median :2.000 Median :2.000 A6 : 3 Median :14.00 Median :0.7200
Mean :2.519 Mean :1.926 B2 : 3 Mean :13.05 Mean :0.7649
3rd Qu.:3.000 3rd Qu.:3.000 B3 : 3 3rd Qu.:20.00 3rd Qu.:1.0075
Max. :4.000 Max. :3.000 B4 : 3 Max. :20.00 Max. :1.7600
(Other):36 NA's :11.00
.
.
.
LFSCC STSCC RTSCC
Min. :0.0900 Min. :0.1400 Min. :0.0900
1st Qu.:0.1325 1st Qu.:0.1600 1st Qu.:0.1200
Median :0.1600 Median :0.1800 Median :0.1300
Mean :0.1661 Mean :0.1817 Mean :0.1298
3rd Qu.:0.1875 3rd Qu.:0.2000 3rd Qu.:0.1475
Max. :0.2600 Max. :0.2800 Max. :0.1700
> Para referirme a cada una de las columnas del archivo, uso el símbolo $ así:
> mic <- tree$C > mic [1] 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 [39] 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 >
Esto me devolverá el vector con los valores de la columna C de la variable tree.
Clases
Las clases u objetos, son tipos de datos como los números, que tienen asociados a ellos datos y funciones, los datos se llaman parámetros y las funciones métodos. Sin querer ya hemos estado manejando una clase, y es la data.frame, que es la que devuelve la función read.csv(...) que hemos usado para leer los datos, y asignársela a las variables tree y w1. Para ver los atributos asociados a una clase se usa la función attributes, que ya le hemos usado.
Strip Chart
Esta función grafica los datos que se le suministren en un vector. Ejemplo:
> stripchart(w1$vals)
Lo que hace stripchart, es poner los valores en forma de cuadritos, en la posición del valor, sin nada más, podemos decirle que los ponga en forma vertical apilándolos:
> stripchart(w1$vals,method="stack")
Como verá, eso pinta la gráfica y pone los cuadros uno sobre otro si están repetidos, como es el caso del 0.58 que se encuentra tres veces.
Otra forma de hacerlo es mover los valores hacia arriba y hace abajo, de tal forma que no se pongan unos sobre otros, se usa el método jitter así:
> stripchart(w1$vals,method="jitter")
Si gusta puede cambiar la orientación de la gráfica de horizontal a vertical con el parámetro vertical:
> stripchart(w1$vals,vertical=TRUE) > stripchart(w1$vals,vertical=TRUE, method="jitter")
Puede ponerle un título a la gráfica si gusta con el comando title así:
> title('Biomasa en CO2 ambiental',xlab='Biomasa por estratos')
>Esto pondrá el título a la gráfica actualmente abierta, el título será el primer parámetro y el parámetro xlab es el título de la barra en x.
Puede hacerlo todo con un solo comando así:
> stripchart(w1$vals,method="stack",
main='Biomasa en CO2 ambiental',
xlab='Biomasa por estratos')
Histogramas
Como pudo ver, las gráficas en strips no son muy útiles cuando se trata de analizar distribuciones de probabilidad, para eso los histogramas son más útiles:
> hist(w1$vals)
Lo que me está mostrando la gráfica, es cuantos valores hay en los intervalos graficados. Como verá cada intervalo mide 0.2, y en el primer intervalo, es de anotar que el intervalo es semi abierto (] esto quiere decir que si hay un valor en el borde, este valor pertenecerá inmediatamente menor. Verifique lo anterior con el intervalo (20, 40], cuantos hay, observará que el valor 40 se incluye en este intervalo, pero si hubiera un valor 20, no estaría en este intervalo.
Para modificar el número de intervalos, lo puede hacer con el parámetro break así:
> hist(w1$vals,breaks=2) > hist(w1$vals,breaks=4) > hist(w1$vals,breaks=6) >
También puede modificar los límites a mostrar, en caso de que quiera sólo mirar una parte del histograma esto último sería muy útil:
> hist(w1$vals,breaks=12,xlim=c(0,10)) > hist(w1$vals,breaks=12,xlim=c(-1,2)) > hist(w1$vals,breaks=12,xlim=c(0,2)) > hist(w1$vals,breaks=12,xlim=c(1,1.3)) > hist(w1$vals,breaks=12,xlim=c(0.9,1.3)) >
Podemos sobre escribir el título como en los Strip Charts con title:
> title('Biomasa en CO2 ambiental',xlab='Biomasa por estratos')
>O usar los parámetros main y xlab de la misma forma:
> hist(w1$vals,
main='Biomasa en CO2 ambiental',
xlab='Biomasa por estratos')
>Podemos combinar los histogramas y los strip charts, fijándolos en una posición ejemplo:
> hist(w1$vals,main='Biomasa en CO2 ambiental',xlab='Biomasa por estratos',ylim=c(0,16)) > stripchart(w1$vals,add=TRUE,at=15.5) >
Esto pintará los valores en la parte superior a una altura de 15.5, justo por encima de la barra más alta.