Graficos Estadisticos y Mapas Con R

378

description

Graficos Estadisticos y Mapas Con R

Transcript of Graficos Estadisticos y Mapas Con R

  • Castor Guisande Gonzlez Catedrtico del rea de Ecologa

    Universidad de Vigo. Espaa

    Antonio Vaamonde Liste Catedrtico del rea de Estadstica

    e investigacin Operativa Universidad de Vigo. Espaa

    Grficos estadsticos

    y mapas con R

  • Cstor Guisande Gonzlez, Antonio Vaamonde Liste, 2012 (Versin papel)

    Cstor Guisande Gonzlez, Antonio Vaamonde Liste, 2013 (Versin electrnica)

    Reservados todos los derechos.

    Queda prohibida, salvo excepcin prevista en la ley ,cualquier forma de reproduccin, distribucin, comunicacin pblica y transformacin de esta obra sin contar con la autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual (art.270 y siguientes del Cdigo Penal). El Centro Espaol de Derechos Reprogrficos (CEDRO) vela por el respeto de los citados derechos.

    EdicionesDazdeSantos Email:[email protected] www.editdiazdesantos.com ISBN: 978-84-9969-610-2 (Libro electrnico) ISBN:978-84-9969-211-1(Libro en papel)

  • NDICE

    PRLOGO Y AGRADECIMIENTOS............................................. XI I. PROGRAMACIN DE GRFICOS CON R............................... 1

    I.1. PRIMEROS PASOS CON R..................................................... 1 I.1.1. Instalacin........................................................................... 1 I.1.2. Interfaz................................................................................ 1 I.1.3. Seleccionar directorio de trabajo........................................ 2 I.1.4. Paquetes grficos................................................................ 3 I.1.5. Scripts y archivos que se usan en el libro........................... 6

    I.2. COMPLEMENTOS GRFICOS............................................... 6 I.3. ARGUMENTOS GENERALES................................................ 11 I.4. COLORES.................................................................................. 20 I.5. FRMULAS MATEMTICAS Y CARACTERES ESPECIALES................................................................................... 32 I.6. DISPOSITIVOS PARA GRFICOS......................................... 34

    II. GRFICOS BSICOS.................................................................. 39

    II.1. GRFICOS DE DISPERSIN................................................ 39 II.2. GRFICOS CON BARRAS DE DESVIACIONES................ 46 II.3. MODELOS Y GRFICOS EN PANELES.............................. 48 II.4. DIAGRAMA DE CAJAS......................................................... 49 II.5. BEANPLOTS............................................................................. 52 II.6. CURVAS DE AJUSTE............................................................. 58 II.7. HISTOGRAMAS...................................................................... 59 II.8. DIAGRAMA DE TALLO Y HOJAS....................................... 64 II.9. GRFICOS DE BARRAS........................................................ 65 II.10. GRFICOS CIRCULARES................................................... 73 II.11. GRFICOS DE PUNTOS...................................................... 77 II.12. GRFICOS TERNARIOS..................................................... 78 II.13. GRFICOS DE CONTORNOS Y SUPERFICIES................ 83 II.14. GRFICOS TRIDIMENSIONALES..................................... 87 II.15. CONFIGURACIN DE MRGENES Y EJES ADICIONALES...............................................................................

    94

    II.16. FORMAS ESPECIALES........................................................ 96 II.17. GRFICOS COMBINADOS................................................. 99

    VII

  • GRFICOS ESTADSTICOS Y MAPAS CON R VIII

    II.18. GRFICOS DENTRO DE GRFICOS................................. 100 II.19. AMPLIACIN DE UN REA DENTRO DE UN GRFICO.........................................................................................

    103

    II.20. GRFICOS CON INTERVALOS EN LOS EJES................. 104 II.21. PAQUETES QUE PERMITEN REALIZAR VARIOS TIPOS DE GRFICOS BSICOS.................................................. 106

    II.21.1. R Commander.................................................................. 106 II.21.2. GrapheR........................................................................... 112

    II.22. REPRESENTACIONES INTERACTIVAS PARA PGINAS WEB............................................................................... 117

    II.22.1. Grficos........................................................................... 117 II.22.2. Tablas.............................................................................. 120 II.22.3. Combinacin de representaciones................................... 121

    III. GRFICOS AVANZADOS......................................................... 123

    III.1. GRFICOS DEMOGRFICOS............................................. 123 III.2. GRFICOS DE BURBUJAS.................................................. 125 III.3. GRFICOS DE ESCALERA.................................................. 128 III.4. DIAGRAMAS DE FLUJO...................................................... 129 III.5. GRFICOS DE TELARAAS.............................................. 131 III.6. DIAGRAMA DE EVENTOS.................................................. 133 III.7. MATRICES DE GRFICOS.............................................. 139 III.8. GRFICOS DE MATRICES DE CORRELACIONES.......... 147 III.9. DIAGRAMA DE VENN Y EULER....................................... 152 III.10. GRFICOS DE VARIABLES CUALITATIVAS EN FUNCIN DE VARIABLES CUANTITATIVAS................... 153 III.11. DISTRIBUCIONES DE VARIABLES CUALITATIVAS.. 158 III.12. GRFICOS PARA TABLAS DE CONTINGENCIA.......... 161 III.13. GRFICOS PARA GRANDES CONJUNTOS DE DATOS............................................................................................. 165

    III.13.1. Dispersin...................................................................... 166 III.13.2. Matrices de grficos....................................................... 167 III.13.3. Espectros........................................................................ 169 III.13.4. Grficos polares............................................................. 171

    III.14. GRFICOS PARA PRUEBAS ALEATORIAS................... 173 III.15. DIAGRAMA DE TAYLOR.................................................. 177 III.16. CURVAS DE SUPERVIVENCIA Y REGRESIN DE COX.................................................................................................. 180 III.17. ANLISIS DE VARIANZA................................................. 182 III.18. GRFICOS DE DIAGNSTICO EN MODELOS LINEALES....................................................................................... 186

  • NDICE IX

    III.19. GRFICOS DE MEDIDAS DE RIESGO DE EXTINCIN..................................................................................... 188 III.20. GRFICOS PARA ANLISIS MULTIVARIANTE........... 190

    III.20.1. Biplot.............................................................................. 190 III.20.2. Anlisis Discriminante................................................... 192 III.20.3. GGE Biplot..................................................................... 199 III.20.4. Grficos combinando Anlisis de Componentes Principales y Anlisis Discriminante........................................... 212

    III.21. MODELO DE EFECTOS PRINCIPALES ADITIVOS E INTERACCIN MULTIPLICATIVA (AMMI).......................... 216 III.22. GRFICOS DE INFERENCIA EN COSTE/EFICACIA..... 219 III.23. META-ANLISIS................................................................ 224

    III.23.1. Diagrama de bosque....................................................... 225 III.23.2. Grfico de L'Abb.......................................................... 232 III.23.3. Diagrama de embudo..................................................... 234 III.23.4. Diagrama de anlisis de sensibilidad............................. 236 III.23.5. Diagrama de meta-anlisis acumulativo........................ 237

    III.24. GRFICOS DE CLASIFICACIN...................................... 239 III.24.1. Clasificacin jerrquica (dendrograma)......................... 239 III.24.2. Clasificacin de k-medias.............................................. 242 III.24.3. rbol de consenso.......................................................... 247 III.24.4. rboles de Clasificacin y Regresin: CARTs.............. 249 III.24.5. rboles de Clasificacin y Regresin (CARTs) y Anlisis de Componentes Principales.......................................... 255 III.24.6. rboles de Inferencia..................................................... 260

    III.25. DIAGRAMAS PALEOECOLGICOS................................ 271 III.26. GRFICOS CLIMTICOS.................................................. 274

    III.26.1. Rosa de vientos.............................................................. 274 III.26.2. Diagrama de Walter-Lieth............................................. 276

    III.27. CONTROL DE CALIDAD................................................... 278 III.27.1. Definir............................................................................ 279

    III.27.1.1. Diagrama de Ishikawa........................................... 279 III.27.1.2. Diagrama de Pareto............................................... 280

    III.27.2. Medir.............................................................................. 282 III.27.2.1. MSA tipo I............................................................... 282 III.27.2.2. MSA tipo II............................................................. 284

    III.27.3. Analizar.......................................................................... 288 III.27.4. Mejorar........................................................................... 290

    III.27.4.1. Diseo factorial...................................................... 291 III.27.4.2. Diseo con mezclas................................................ 296 III.27.4.3. Diseos Taguchi..................................................... 299

  • GRFICOS ESTADSTICOS Y MAPAS CON R X

    III.27.5. Controlar........................................................................ 302 III.27.5.1. Variables................................................................ 303 III.27.5.2. Atributos................................................................. 307

    III.28. MINERA DE DATOS.......................................................... 309 III.28.1. Cargar datos................................................................... 310 III.28.2. Explorar.......................................................................... 312 III.28.3. Pruebas........................................................................... 315 III.28.4. Modelos.......................................................................... 316

    IV. MAPAS.......................................................................................... 319 IV.1. REAS ADMINISTRATIVAS.............................................. 319 IV.2. GRFICOS DENTRO DE MAPAS....................................... 327 IV.3. MAPAS CON INFORMACIN ADICIONAL..................... 328 IV.4. MAPAS DE VECTORES....................................................... 338 IV.5. MAPAS INTERACTIVOS..................................................... 340 IV.6. MAPAS HIDROLGICOS.................................................... 341

    BIBLIOGRAFA................................................................................. 347 NDICE DE PAQUETES, FUNCIONES Y ARGUMENTOS........ 355

  • Los estadsticos han utilizado siempre grficos para mostrar los resultados de forma que pudieran ser interpretados por diferentes tipos de lectores, incluyendo aquellos con escasos o nulos conocimientos de estadstica. Los grficos ayudan a entender mejor las conclusiones obtenidas en la aplicacin de diferentes mtodos estadsticos, y generalmente se busca con la representacin reforzar visualmente los aspectos ms destacables de los datos y los resultados.

    Algunos grficos estadsticos aparecen con frecuencia en la prensa o en los distintos medios de comunicacin, ya que son necesarios para entender mejor la realidad que nos rodea. Un conocimiento elemental de los grficos ms comunes forma parte hoy en da de la cultura general de los ciudadanos, y es habitual encontrarlos, junto con otros conceptos estadsticos elementales, en los planes de estudios de la enseanza obligatoria de cualquier pas moderno.

    Existen centenares de tipos distintos de grficos y mltiples variantes de cada uno de ellos. Los programas estadsticos generalmente han prestado mucha atencin a la construccin de grficos, que suele ser un apartado importante del men de usuario. A menudo se busca la construccin automtica del grfico, liberando al usuario del esfuerzo y la incomodidad de definir tamaos, escalas, lneas, colores, leyendas, o complementos diversos.

    Existen programas no estadsticos de uso general, como por ejemplo hojas de clculo, sistemas de gestin de bases de datos, entornos de programacin, pro-gramas de edicin o de diseo de pginas web, que incluyen tambin herra-mientas para la construccin de grficos estadsticos, ya que la presentacin de la informacin de una forma adecuada es un elemento esencial que ha superado hace mucho tiempo el estricto mbito de la Estadstica para convertirse en una necesidad transversal de aplicacin prcticamente universal.

    Algunos grficos son fcilmente interpretables, sin requerir una formacin previa, ya que son intuitivos y asequibles a todos. Otros requieren un conoci-miento adicional sobre el significado exacto de los distintos elementos represen-tados. Por ltimo, existe una tercera categora de grficos, en nmero creciente, cuya complejidad interpretativa requiere un conocimiento experto de la tcnica estadstica que lo emplea. No es posible interpretar adecuadamente esos grficos sin haber comprendido suficientemente un mtodo estadstico concreto, siendo el grfico en esos casos una parte importante del mismo. Muchos mtodos estads-ticos conducen a un grfico de interpretacin no trivial, por ejemplo el escala-miento multidimensional, rboles de clasificacin, algunas tcnicas de control de calidad, anlisis de series temporales, meta-anlisis, etc.

    Muchos grficos nacieron histricamente como herramientas meramente des-criptivas, como una alternativa o un complemento a las tablas y medidas num-ricas. Sin embargo, desde antiguo se conocen las posibilidades analticas y expli-cativas de algunos grficos, y actualmente existen grficos que constituyen po-tentes instrumentos de anlisis y decisin.

    PRLOGO Y AGRADECIMIENTOS

    XI

  • GRFICOS ESTADSTICOS Y MAPAS CON R XII

    R se ha convertido durante la ltima dcada en el programa estadstico de uso general ms potente, con mucha diferencia sobre los restantes, y tambin el ms verstil. No solo es el preferido por la comunidad estadstica, que ha apostado sin reservas por su desarrollo mediante un esfuerzo colectivo generoso y desin-teresado sino que, adems, quizs en parte por su carcter de programa total-mente gratuito, empieza a ser utilizado cada vez ms por investigadores y tcni-cos de cualquier mbito de conocimiento, hasta el punto de que actualmente es posible encontrar sin dificultad aplicaciones, desarrolladas en R, de inters para usuarios con necesidades estadsticas especializadas, en campos tan distintos como ecologa, medicina, ingeniera, biologa, economa, lingstica, sociologa, o como no- estadstica.

    R es por aadidura el programa estadstico con mayor capacidad y flexibilidad para la construccin de grficos, y ese es el objeto de este libro, mostrar las enormes posibilidades que R brinda en este aspecto, y ensear a los usuarios interesados como construir los grficos que necesitan.

    La filosofa de R no coincide con la mayora de los programas estadsticos al-ternativos. No se busca tanto la rapidez y comodidad del usuario mediante la construccin automtica de un grfico nico y cerrado sino, por el contrario, la flexibilidad y el control de los distintos elementos del grfico, que el usuario puede disear a su medida. Este planteamiento, que hace posible obtener grfi-cos personalizados, obliga por otra parte a un mayor esfuerzo de programacin y a un mayor nivel de conocimientos, pero el esfuerzo obtiene su recompensa en un resultado en general mucho ms satisfactorio. Por otra parte existen muchos procedimientos de R que permiten obtener grficos de forma rpida y sencilla si se desea, aplicando condiciones estndar y opciones por defecto, que no requie-ren un esfuerzo para el usuario mucho mayor del que exigen otros programas estadsticos.

    En la primera parte del libro se presentan las tcnicas generales para la cons-truccin de grficos con R: paquetes, funciones, argumentos y opciones, con numerosos ejemplos de aplicacin reales que permitirn al lector utilizar las fun-ciones bsicas con soltura para la construccin de la mayora de los grficos ms comunes. Un buen conocimiento de estas tcnicas bsicas ser til tambin para la construccin y modificacin de otros grficos ms complejos.

    El objetivo es el manejo de los distintos parmetros que controlan el tamao y aspecto, escalas, ejes, lneas, puntos, colores, textos y leyendas, smbolos y otros elementos grficos, as como las utilidades que permiten combinar distintos grficos, aadir elementos nuevos a un grfico, y otras ms avanzadas.

    En la segunda parte del libro se revisan de forma sistemtica los principales grficos, desde los ms bsicos y habituales (histograma, diagrama de barras, de sectores, de cajas, de dispersin, etc.) hasta los ms complejos (biplot, curvas de nivel, grficos de control, etc.), incluyendo algunos grficos de reciente apari-cin asociados a tcnicas estadsticas novedosas.

    No se pretende elaborar un catlogo de todos los grficos existentes sino so-lamente describir los ms usuales o los ms tiles para el lector general, entre otras cosas porque el mundo de R est vivo y tiene una gran vitalidad, de modo que constantemente aparecen nuevas propuestas, nuevas tcnicas, nuevos pa-quetes y nuevos grficos, as como mejoras en los ya existentes.

    Para cada uno de los grficos descritos en el libro se presentan con detalle los procedimientos para la construccin y las principales claves de interpretacin, de modo que puedan ser utilizados por usuarios no expertos o sin conocimientos estadsticos avanzados.

  • PRLOGO Y AGRADECIMIENTOS XIII

    Para todos los grficos se muestra con ejemplos la construccin paso a paso, de tal forma que sea sencillo reproducir el resultado con cualquier otro conjunto de datos. Se explican las caractersticas del grfico, el significado de los diferen-tes argumentos de cada una de las funciones, y el mbito de aplicacin.

    Tambin se lleva a cabo una interpretacin de los resultados para la aplicacin concreta y el ejemplo utilizado en cada caso. Esta interpretacin es quizs el aspecto ms difcil, sobre todo en algunos grficos relacionados con tcnicas es-tadsticas complejas, ya que depende siempre de los resultados, que pueden ser distintos en cada aplicacin. Aunque se intenta explicar las claves principales de interpretacin, lo cierto es que solamente un conocimiento profundo de los as-pectos tericos y prcticos relacionados con la tcnica estadstica involucrada garantizar una interpretacin correcta de todos los resultados grficos obteni-dos, por lo que recomendamos vivamente a los lectores interesados que no se detengan en la realizacin prctica de los grficos, sino que intenten comprender los diferentes elementos tericos (propios del campo de aplicacin) y estadsticos que subyacen en los resultados a interpretar, y consulten con un experto es-tadstico sus dudas cuando sea necesario.

    Dado el carcter abierto y libre de R, los paquetes -y los datos contenidos en ellos- pueden ser modificados o incluso suprimidos por sus autores cuando lo consideren oportuno. En ese caso algunos ejemplos citados en este libro podran dar lugar a resultados diferentes de los indicados, o requerir datos e instruccio-nes distintas de las que se citan. Los autores del libro no se hacen responsables de estos hipotticos cambios ajenos a su voluntad.

    Por ltimo, agradecemos a Aldo Barreiro Felpeto su ayuda con alguno de los scripts que se muestran en el libro.

  • PROGRAMACIN DE GRFICOS CON R

    I.1.1. INSTALACIN El programa est en la direccin http://cran.r-project.org/. All veremos, en la parte superior, un enlace para la instalacin de R en Linux, MacOS y Windows. Para Windows debemos seguir el enlace al subdirectorio base. En el caso de MacOS, el enlace nos lleva a una pgina donde podemos encontrar el archivo de instalacin con la ltima versin. Hay varias formas de instalar R en distribucio-nes de Linux; de forma general, primero es necesario aadir CRAN a la lista de repositorios, configurar el nuevo repositorio adecuadamente e instalar el r-base. I.1.2. INTERFAZ

    Existen diferentes entornos grficos que facilitan la interaccin con el usuario (llamados GUI, del ingls Graphical Users Interface). Entre los ms populares se encuentran RGui (disponible para Windows), Tinn-R (Windows, MacOS), R Commander (Windows, MacOS, Linux), Emacs (Windows, MacOS, Linux), RKward (Linux), pero existen muchos otros. En este libro hemos elaborado la mayora de los ejemplos con RGui en Windows, y algunos con R Commander. La siguiente pantalla muestra el aspecto de la interfaz RGui, disponible para Windows:

    CAPTULO I

    I.1. Primeros pasos con R

    1

  • GRFICOS ESTADSTICOS Y MAPAS CON R 2

    RGui se instala de forma automtica con el paquete base de Windows. El resto de GUIs es necesario instalarlas especficamente. Se encuentran gratuita-mente en internet. Estas GUIs, para facilitar la interaccin con el usuario, disponen de una serie de mens desplegables, cuya complejidad puede ir desde solamente algunas sencillas posibilidades de edicin, apertura de ficheros, guardar datos, cargar paquetes, actualizar, etc. como podra ser el caso de RGui, hasta correccin de sintaxis de instrucciones, mens desplegables para importar/exportar datos, grficos y mltiples tcnicas estadsticas, como es el caso de R Commander y RKward. I.1.3. SELECCIONAR DIRECTORIO DE TRABAJO

    Si disponemos de alguno de los mltiples tipos de interfaz grfica, adems de la consola, podemos usar el correspondiente icono de acceso directo para abrir el programa R.

    Una vez dentro del programa, es muy importante seleccionar el directorio o carpeta de trabajo. Este directorio es el que estar disponible de forma autom-tica para cargar archivos de datos, abrir archivos para incluir instrucciones (scripts), guardar reas de trabajo y archivos de salida, etc. Si no seleccionamos un directorio de trabajo especfico utilizar el que tiene por defecto, que depende de la instalacin que se haya hecho. El directorio de trabajo se selecciona con la siguiente instruccin: setwd(C:/Documents and Settings/All Users/ArchivosR)

    La funcin setwd() permite seleccionar el directorio deseado escribiendo

    como argumento toda la ruta de directorios entrecomillada, con las barras sepa-radoras orientadas hacia la derecha. Si queremos saber cul es el directorio de trabajo actual, debemos escribir la siguiente instruccin: getwd()

    Aqu tenemos un ejemplo de cmo establecer un directorio de trabajo me-

    diante instrucciones y despus preguntar cual es el directorio de trabajo actual: setwd("C:/Archivos de programa") getwd()

    La mayora de las GUIs disponen de una opcin a travs de men para esta-blecer el directorio de trabajo. En RGui, que como se mencion anteriormente es el entorno que se usar en la mayora de los ejemplos en este libro, se encuentra en el men Archivo Cambiar dir. Tras pulsar en esta opcin surge un cuadro de dilogo en el que seleccionaremos nuestro directorio.

  • PROGRAMACIN DE GRFICOS CON R 3

    Para salir de R es suficiente con teclear q() en la lnea de instrucciones. Si trabajamos con cualquiera de los GUIs, suele haber adems un men con la op-cin Salir (como se observa en la anterior ventana). Cualquiera que sea la forma que escojamos para salir, se nos preguntar si queremos guardar o no el rea de trabajo. En el rea de trabajo se guardan objetos que hayamos creado y que quedan disponibles hasta la prxima vez que deseemos utilizarlos abriendo el archivo. Se guarda como un archivo con extensin Rdata. Es posible tener abiertas simultneamente varias reas de trabajo. Tambin es posible guardar la serie de instrucciones que hayamos escrito, como archivo Rhistory. No obs-tante, para esto es ms interesante la opcin de editarlos creando un script, como veremos a continuacin. I.1.4. PAQUETES GRFICOS

    Para realizar cualquier aplicacin con R se usa un paquete, que es un archivo con el cdigo que contiene las funciones que nos interesa utilizar. Estos paque-tes son programados por usuarios que los ponen a disposicin pblica en los re-positorios de CRAN. Una librera es un directorio donde se instala un de-terminado grupo de paquetes. Hay un listado con todos los paquetes disponibles, incluyendo tambin todos los paquetes grficos, en la pgina web de R: http://cran.r-project.org/web/packages/available_packages_by_name.html# available-packages-L. Para ver solamente los paquetes que incluyen funciones grficas vase la pgina http://rgm2.lab.nig.ac.jp/RGM2/images.php?show=all donde, adems de tener una lista de los paquetes, tambin se muestran los grficos.

    Las diferentes instrucciones de R para realizar grficos, que forman parte de los diferentes paquetes, se pueden dividir en:

    Funciones grficas. Permiten realizar diferentes tipos de grficos y tie-

    nen sus propios argumentos especficos. Complementos grficos. Son tambin funciones que permiten aadir a

    los grficos lneas, textos, flechas, leyendas, etiquetas, etc., y tambin tienen sus propios argumentos especficos.

  • GRFICOS ESTADSTICOS Y MAPAS CON R 4

    Argumentos generales. Son argumentos que se pueden usar en las funciones y complementos grficos anteriores, adems de los argumen-tos especficos de cada una de ellas.

    El siguiente esquema resume la estructura de los paquetes, con sus funcio-

    nes, las cuales tienen argumentos especficos y tambin pueden usar argumen-tos generales que son de uso comn para todas las funciones.

    El modo ms elemental de instalar un paquete es ejecutando la siguiente ins-truccin: install.packages("nombre del paquete", dep=TRUE)

    El nombre del paquete se escribe entre comillas, y despus de la coma es

    muy recomendable incluir el argumento dep=TRUE, que indica que se instalen tambin las dependencias de ese paquete. Las dependencias son otros paquetes que contienen elementos necesarios para que funcionen todas las aplicaciones que hay en el paquete que queramos instalar. Sin esas dependencias, algunas aplicaciones de nuestro paquete podran no funcionar.

    Los GUIs suelen incluir algn tipo de men para instalar paquetes. Por ejem-plo, en RGui se encuentra en Paquetes Instalar paquetes(s), y ya instala por defecto todas las dependencias.

    Paquetes Funciones Argumentosespecficos

    Argumentosgenerales

    graphics xmain=plot()

    text()

    contour()

    xlimit=ade4 triangle.plot()

    type=

    nlevels=

    addmean=

  • PROGRAMACIN DE GRFICOS CON R 5

    Inmediatamente despus de la anterior instruccin, aparece una ventana en la que se nos pide que seleccionemos un servidor espejo desde el que podamos descargar el paquete. Suele escogerse por proximidad geogrfica. Todos los eu-ropeos funcionan bien. Despus de seleccionar el servidor, elegimos el paquete en la lista alfabtica, y se descargar de forma automtica, quedando instalado en ese ordenador de forma permanente.

    Cuando se instala un paquete se instalan las funciones que contiene y, en muchos casos, tambin se instalan datos que se utilizan para ilustrar los ejem-plos de uso de las funciones. Para acceder a una lista completa de todas las fun-ciones dentro de un paquete, teclearamos la siguiente instruccin:

    library(help="graphics")

    La mejor forma de consultar la lista de argumentos disponibles de cada fun-

    cin es cargando el paquete y luego ver el men ayuda de la funcin: library(vcd) help(assoc)

    Existen demos que nos muestran buenos ejemplos de grficos con su corres-

    pondiente cdigo: demo(graphics)

  • GRFICOS ESTADSTICOS Y MAPAS CON R 6

    demo(image)

    Las funciones grficas que permiten hacer los distintos tipos de grficos se explicarn en el siguiente captulo. Como los complementos grficos y los argu-mentos generales son importantes cuando se realiza cualquier tipo de grfico, se explicarn antes de pasar a ver todas las funciones grficas disponibles en R.

    I.1.5. SCRIPTS Y ARCHIVOS QUE SE USAN EN EL LIBRO

    Todos los scripts y archivos con los datos utilizados en los ejemplos de este libro se pueden descargar de la pgina web http://www.ipez.es/GRAFICOS_ ESTADISTICOS_Y_MAPAS_CON_R.rar.

    Como se mencion anteriormente, los complementos grficos son tambin funciones que sirven para aadir a los grficos lneas, textos, cuadros, flechas, leyendas, etiquetas, etc. Por lo tanto sirven para complementar los grficos que se realizan con las funciones grficas que veremos en el siguiente captulo.

    En el esquema que sigue se muestra en primer lugar cada funcin y la pgina de este libro donde se puede encontrar un ejemplo de utilizacin. Despus se explica para que sirve, el paquete al que pertenece, y los argumentos especficos que tiene, junto con sus valores por defecto, indicados con el smbolo * en la descripcin de los argumentos.

    I.2. Complementos grficos

    ablinepg. 41

    Aade lneas:Paquete graphicsabline(a = NULL, b = NULL, h= NULL, v = NULL, reg =NULL, coef = NULL, untf =FALSE,....)

    a y b: interseccin ypendiente de la recta

    h: valor de y en unalnea horizontal

    v: valor de x en unalnea vertical

    reg: un vector del tipoc(a,b) con la inter-seccin y pendiente dela regresin

    coef: Se especifica unaregresin, por ejemplocoef (lm c(x~y))

    untf: FALSE* o TRUE. Siun eje tiene trans-formacin log y se poneTRUE, representa lalnea sin transformar

  • PROGRAMACIN DE GRFICOS CON R 7

    arrowspg. 97

    Representa flechas:Paquete graphicsarrows(x0, y0, x1, y1, length =0,25, angle = 30, code = 2,col, lty, lwd,....)

    x0 e y0: coordenadas deorigen

    x1 e y1: coordenadasfinales

    length: longitud en pul-gadas de la punta deflecha

    angle: ngulo de lapunta de la flecha

    code: tipo de flecha

    axispg. 95

    Aade ejes:Paquete graphicsaxis(side, at = NULL, labels =TRUE, tick = TRUE, line = NA,pos = NA, outer = FALSE,font= NA, lty = "solid", lwd = 1,lwd.ticks = lwd, col = NULL,col.ticks = NULL, hadj = NA,padj = NA.....)

    side: 1 eje inferior, 2 ejeizquierdo, 3 eje superiory 4 eje derecho

    at: variable con los valo-res donde se pondrn lasdivisiones del eje. En ca-so de no ponerla se cal-culan automticamente

    labels: TRUE*, FALSE,variable con las etiquetasde los intervalos, un ca-rcter o un vector

    tick: valor lgico (TRUE*o FALSE) que indica si serepresentan los interva-los

    line: nmero de lneasde separacin con el eje

    pos: coordenada dondese pondr el eje

    outer: valor lgico(TRUE o FALSE*) quedefine si el eje serepresenta fuera o den-tro de los mrgenes delgrfico

    hadj y padj: ajustes ho-rizontales y verticales enuna escala de 0 a 1

  • GRFICOS ESTADSTICOS Y MAPAS CON R 8

    boxpg.95

    Pinta un marco en el grfico:Paquete graphicsbox(which = "plot", lty,....)

    which: indica donderepresentar el marco ypuede ser "plot", "figure","inner" o "outer"

    gridpg. 48

    Representa una cuadrcula:Paquete graphicsgrid(nx = NULL, ny = nx, col ="lightgray", lty = "dotted",lwd = par("lwd"),....)

    nx y ny: nmero deceldas en las direccionesx e y. Por defecto utilizalas divisiones de los ejes

    legendpg. 42

    Aade una leyenda:Paquete graphicslegend(xx, y = NULL, legend,fill = NULL, col = par("col"),border="black", lty, lwd,pch,angle = 45, density = NULL,bty = "o", bg = par("bg"),box.lwd = par("lwd"), box.lty= par("lty"), box.col =par("fg"), pt.bg = NA, cex =1, pt.cex = cex, pt.lwd =lwd, xjust = 0, yjust = 1,x.intersp = 1, y.intersp = 1,adj = c(0, 0.5), text.width =NULL, text.col = par("col"),merge = do.lines &&has.pch, trace = FALSE, plot= TRUE, ncol = 1, horiz =FALSE, title = NULL, inset =0, xpd, title.col = text.col,title.adj = 0.5, seg.len = 2

    x e y: coordenadas de laleyenda

    legend: texto de la le-yenda

    fill: color de relleno

    ncol: nmero de colum-nas

    horiz: si es TRUE lostextos son horizontales

    La posicin de la le-yenda se especifica concoordenadas o conpalabras clave: "bo-ttomright", "bottom","bottomleft", "topleft","left", "top", "topright","right" o "center"

    bty: define el marco dela leyenda: "o" conmarco y "n" sin marco

    linespg. 58

    Aade lneas o une los puntoscon lneas:Paquete graphicslines(x = NULL, y = NULL, type= "l",....)

    x, y: coordenadas de lospuntos a unir mediantelneas

    type: vase la funcinplot() para ver los dis-tintos tipos de lnea

  • PROGRAMACIN DE GRFICOS CON R 9

    locatorpg. 42

    Permite definir con el ratn laposicin de objetos en el panelgrfico y devuelve las coorde-nadas:Paquete graphicslocator(n = 512, type = "n",....)

    n: el nmero mximo deobjetos que se deseaubicar

    type: Con "n" ubicacualquier objeto, con "p"representa smbolos ycon "l" pinta lneasuniendo los puntos, pa-ra lo cual n debe sermayor que 1

    mtextpg. 46

    Permite aadir textos en elmargen del grfico:Paquete graphicsmtext(text, side = 3, line =0, outer = FALSE, at = NA,adj = NA, padj = NA, cex,col, font,...)

    text: texto

    side: eje donde seubicar el texto; abajo(1), izquierda (2), arriba(3), y derecha (4)

    line: valor numrico conla distancia, en lneas,desde el eje

    outer: si es TRUE utilizalos mrgenes exte-riores si estn dispo-nibles

    at: posicin en el grficodonde se quiere escribirel texto

    adj: ajuste del texto enel sentido de la direc-cin de lectura. Para lostextos paralelos a losejes, adj = 0 significaalineacin hacia la iz-quierda o abajo, y adj= 1 significa alineacinderecha o arriba.

    padj: ajuste del textoperpendicular a la di-reccin de lectura (quees controlada por adj).Para los textos para-lelos a los ejes, padj =0 significa alineacinderecha o arriba, ypadj = 1 significa ali-neacin hacia la iz-quierda o abajo.

  • GRFICOS ESTADSTICOS Y MAPAS CON R 10

    pointspg. 42

    Permite representar smbolosen la coordenadas especifi-cadas:Paquete graphicspoints(x, y, type = "p",....)

    x e y: coordenadas delos puntos

    type: vase la funcinplot() para ver losdistintos tipos de gr-ficos

    polygonpg. 44

    Representa polgonos:Paquete graphicspolygon (c(x1,x2), c(y1,y2),density = NULL, angle = 45,border = NULL, col, lty,....)

    x e y: coordenadas delos vrtices del polgono

    density: densidad delsombreado

    angle: ngulo de laslneas del sombreado

    border: color del borde,NA es sin borde y NULL*con el color por defecto(negro)

    rectpg. 58

    Pinta un rectngulo:Paquete graphicsrect(xleft, ybottom, xright, ytop,density = NULL, angle = 45, col= NA, border = TRUE, lty,lwd,...)

    xleft, ybottom, xright,ytop: extremos delrectngulo

    density: densidad delsombreado

    angle: ngulo de laslneas de sombreado

    border: si es TRUE sepinta un borde y NA sinbordes

    rugpg. 95

    Aade al grfico una alfom-bra, con pequeos trazosverticales en cada punto z deleje horizontal:Paquete graphicsrug(z, ticksize = 0.03, side = 1, lwd = 0.5, col,....)

    z: posicin en el eje x

    ticksize: longitud de lostrazos verticales

    side: lado en el quedibujar la alfombra: 1inferior, 3 superior

    segmentspg. 58

    Dibuja segmentos entre pun-tos:Paquete graphicssegments(x0, y0, x1, y1, col,lty, lwd,....)

    x0, y0, x1, y1: coordena-das de origen y final de la lnea

  • PROGRAMACIN DE GRFICOS CON R 11

    En la seccin anterior se mostraron los complementos grficos. A continua-cin se resumen los argumentos grficos generales, es decir, aquellos que se pueden usar en la mayora de las funciones y complementos grficos. La estruc-tura de los esquemas consiste en mostrar en primer lugar el argumento y la pgina donde se da un ejemplo del mismo, despus se explica para que sirve y, por ltimo, los diferentes valores que tiene (el smbolo * indica cual es la opcin por defecto que tiene el argumento). La abreviacin A.L. indica que son argu-mentos solamente de lectura.

    textpg. 44

    Permite aadir etiquetas a lascoordenadas de un grfico:Paquete graphicstext(x, y = NULL, labels, adj =NULL, srt, offset = 0.5, pos =NULL, cex = 1, col = NULL, font= NULL, ...)

    x o y: coordenadasdonde se ubicar el texto

    labels: texto que sequiere escribir o variablecon las etiquetas deltexto de los puntos

    srt: ngulo del texto

    offset: posicin del textoen el eje vertical res-pecto a la coordenada

    pos: eje donde se ubi-car el texto; abajo (1),izquierda (2), arriba (3),y derecha (4)

    titlepg. 40

    Aade texto en ttulos o leyen-das:Paquete graphicstitle(main = NULL, sub = NULL,xlab = NULL, ylab = NULL, line =NA, outer = FALSE, ...)

    main: texto del ttulo delgrfico

    sub: subttulo

    xlab: leyenda del eje x

    ylab: leyenda del eje y

    line: valor numrico quedefine la separacin deltexto con respecto algrfico

    outer: si es TRUE utilizalos mrgenes exterioressi estn disponibles

    I.3. Argumentos generales

  • GRFICOS ESTADSTICOS Y MAPAS CON R 12

    Los siguientes argumentos solamente se usan con la funcin par(): fig, fin, mai, mar, mex, mfcol, mfrow, new, oma, omd, omi, pin, plt, ps, pty, xlog e ylog. El resto de argumentos con la ma-yora de funciones grficas, adems de la funcin par().

    addpg. 46

    Si se selecciona TRUE aade elgrfico a uno ya creado. Es igual alargumento new, pero esteltimo solamente se usa con lafuncin par(). No se puede usarcon todas las funciones grficas

    FALSE*

    TRUE

    adjpg. 95

    Especifica la alineacin de lostextos en los grficos y tambinsirve para las funciones text,mtext y title

    0 (texto a la izquierda)

    0.5 (texto centrado)*

    1 (texto a la derecha)

    Puede tomar cual-quier valor entre 0y 1, y algunasfunciones permitenvalores mayores

    annpg. 95

    Si se selecciona FALSE elimina lasleyendas de los ejes y los ttulos delos grficos cuando se usa con lafuncin plot.default FALSE

    TRUE*

    askpg. 174

    Si es TRUE se pregunta antes deaadir un nuevo grfico

    FALSE*

    TRUE

    asppg. 40

    Define la proporcin de escala orelacin de aspecto de los ejes: unaunidad en x tiene la misma longitudque asp unidades en y

    Cualquier valor nu-mrico positivo: 1*

    axespg. 99

    Especifica si se representan los ejesdel grfico

    FALSE

    TRUE*

    bgpg. 42

    Define el color de fondo de la ven-tana donde se ubicarn los grficos

    La funcin colors() informa de los 657 colores

    disponibles

  • PROGRAMACIN DE GRFICOS CON R 13

    bg enplot.default

    y pointspg. 42

    En la funcin plot.defaultindica el relleno de los smbolosque son transparentes y enpoints indica el relleno de lossmbolos pch = 21 a 25

    La funcin colors() informa de los 657 colores

    disponibles

    btypg. 42

    Permite definir el tipo de marco delos grficos. En el caso de lafuncin legend solamente admitelos valores "o" (con marco ) y "n"(sin marco)

    "o" (marco completo)*

    "n" (sin marco en la funcin legend)

    "c" (no se representa el borde

    derecho)

    "u" (no se representa el borde

    superior)

    "l" (no se representan los

    bordes superior y derecho)

    "7" (no se representan los bordes inferior e

    izquierdo)

    "]" (no se representa el

    borde izquierdo)

    cexpg. 40

    Valor numrico que define eltamao de los textos. Se puedecombinar con alguno de lossiguientes subargumentos paraespecificar el tipo de texto

    cex.axis (rtulos de los ejes)

    cex.lab (leyendas de los ejes)

    cex.main (ttulo del grfico)

    cex.sub (subttulo del grfico)

  • GRFICOS ESTADSTICOS Y MAPAS CON R 14

    colpg. 42

    Define el color

    col.axis (rtulos de los ejes)

    col.lab (leyendas de los ejes)

    col.main (ttulo del grfico)

    col.sub (subttulo del grfico)

    crapg. 95

    Argumento de lectura que da infor-macin sobre el ancho y el alto delos caracteres en pxeles

    A.L.

    dinpg. 95

    Argumento de lectura que da infor-macin sobre el ancho y el alto delgrfico en pulgadas

    A.L.

    familypg. 40

    Especifica el tipo de letra de lostextos. Se puede utilizar en par()y en text()

    "" (Utiliza el tipo de letra que existe por

    defecto)*

    Otros tipos de letras como "serif", "sans", "mono", etc

    fgpg. 83

    Si se usa con la funcin par(), sedefine el color del marco, lneas ytexto del grfico

    La funcin colors() informa de los 657 colores

    disponibles

    figpg. 92

    Define los lmites del grfico con elformato c(x1, x2, y1, y2). Si no seusa con el argumento new=TRUE crea un nuevo grfico.

    En una escala de 0 a 1

    finpg. 92

    Define el tamao del grfico enpulgadas con el formato c(ancho,alto). Si no se usa con elargumento new=TRUE crea unnuevo grfico.

    Cualquier valor numrico

  • PROGRAMACIN DE GRFICOS CON R 15

    fontpg. 40

    Valor numrico que define la fuentede los textos. El valor 1 es la letranormal, 2 es negrita, 3 es itlica y4 es itlica y negrita

    font.axis (rtulos de los ejes)

    font.lab (leyendas de los ejes)

    font.main (ttulo del grfico)

    font.sub (subttulo del grfico)

    labpg. 58

    Valor numrico con el formatoc(x,y,len) que define el nmero dedivisiones de los ejes. El valor delen hay que especificarlo pero Rno lo utiliza

    Cualquier valor numrico (5,5,7)*

    laspg. 97

    Define la posicin de las etiquetasde los ejes

    0* es paralelo al eje

    1 horizontal

    2 perpendicular al eje

    3 vertical

    lendpg. 54

    Define el estilo del final de la lneay se puede especificar con unnmero o letras

    0 o "round" es un extremo

    redondeado*1 o "butt" es un extremo grueso

    2 o "square" es un extremo cuadrado

    ltypg. 48

    Define el tipo de lnea

    0 "blank" sin lnea

    1 o "solid" lnea slida*

    2 "dashed" lnea discontinua

    3 "dotted" lnea punteada

    4 "dotdash" lnea de puntos y rayas

    5 "longdash" lnea de guin largo

    6 "twodash" lnea de doble raya 6

    54321

  • GRFICOS ESTADSTICOS Y MAPAS CON R 16

    lwdpg. 60 Define el grosor de lnea

    Cualquier valor numrico 1*

    maipg. 99

    Un vector numrico con el formatoc(abajo, izquierda, arriba, derecha)que define los mrgenes de la fi-gura en pulgadas

    Cualquier valor numrico

    mainpg. 40 Permite poner ttulos en los grficos Cualquier texto

    marpg. 99

    Un vector numrico con el formatoc(abajo, izquierda, arriba, derecha)que define el nmero de lneas delos mrgenes de la figura

    Cualquier valor numrico

    mexpg. 94

    Factor de expansin del tamao decaracteres en los mrgenes

    Cualquier valor numrico

    mfcolpg. 48

    Vector con el formato c(nr, nc) queindica el nmero de figuras por fila(nr) y por columna (nc), rellenandoprimero columnas

    Cualquier valor numrico

    mfrowpg. 48

    Igual que mfcol pero rellenandoprimero las filas

    Cualquier valor numrico

    mgppg. 48

    Vector numrico con el formatoc(t,e,l) que especifica la posicin dela leyenda de los ejes (t), el textode las divisiones de los ejes (e) y lalnea de los ejes (l). El valor pordefecto es (3,1,0)

    Cualquier valor numrico

    newpg. 45

    Indica que el nuevo grfico seponga en el panel que ya existe yno se borre, por tanto, el grficoanterior FALSE*

    TRUE

    omapg. 96

    Un vector numrico con el formatoc(abajo, izquierda, arriba, derecha)que define los mrgenes del textoen el panel, en nmero de lneas

    Cualquier valor numrico

    omdpg. 100

    Vector numrico con el formatoc(x1,x2,y1,y2) que define los mr-genes internos donde se ubicar elgrfico, en una escala de 0 a 1

    Entre 0 y 1

    omipg. 100

    Un vector numrico con el formatoc(abajo, izquierda, arriba, derecha)que define los mrgenes del panelen pulgadas

    Cualquier valor numrico

  • PROGRAMACIN DE GRFICOS CON R 17

    oma (4)

    omi (4)

    mar (4)

    mai (4)

    mar (2)

    mai (2)

    oma (2)

    omi (2)

    omd (1)

    omd (2)

    omd (4)

    omd (3)omi (1)oma (1)

    omi (3)oma (3)

    mai (1)mar (1)

    mai (3)mar (3)

    MARGENEXTERNO

    REA DELPANEL GRFICO

    REA DELA FIGURA

    pchpg. 40

    Valor numrico entre 1 y 25 quedefine el tipo de smbolo (elsmbolo que corresponde a cadanmero se muestra en el siguientecuadro). Tambin se puede ponerentre "" cualquier carcter, comose muestra a modo de ejemplo enel cuadro con a, *, !, y $

    De 1 a 14 smbolos sin relleno negro

    De 15 a 20 smbolos con relleno negro

    De 21 a 25 se puede poner el color que se quiera en el

    borde con el argumento col y de relleno con bg

    Cualquier carcter que se ponga entre

    ""

    1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15 16 17 18 19 20

    21 22 23 24 25a * ! $

  • GRFICOS ESTADSTICOS Y MAPAS CON R 18

    pspg. 39

    Tamao del punto de texto (unidadde medida de los caracteres) en1/72 pulgadas

    Cualquier valor numrico

    ptypg. 83

    Carcter que indica si el grfico escuadrado o se alarga lateralmentecuando se ampla la ventana Con "m" el grfico se amplia al mximo

    posible

    Con "s" genera una figura cuadrada

    srtpg. 44

    Valor numrico que define el ngulodel texto. Solamente funciona conla funcin text()

    Cualquier valor numrico

    subpg. 129

    Permite poner subttulos en losgrficos Cualquier texto

    tckpg. 48

    Valor alfanumrico que define eltamao de las marcas de los ejes,en proporcin al rea de la reginde la figura. El valor 1 pone lneasinteriores en el grfico

    Cualquier otro valor numrico

    Con tck=NA deja la marca por defecto*

    tclpg. 48

    Valor alfanumrico que define eltamao de las marcas de los ejes.Se diferencia de tck en que lasmedidas son reales y no enproporcin

    Cualquier otro valor numrico

    Con tck=NA deja la marca por defecto*

    xaxppg. 60

    Vector numrico con el formatoc(x1, x2, n), donde x1 y x2 son losextremos de las marcas de eje x, yn el nmero de intervalos o marcasen el eje

    Cualquier valor numrico

    xaxspg. 95

    Caracter que define como secalculan los intervalos en el eje x,donde el lmite viene definido porxlim o los datos originales

    "r" (regular) ex-tiende un 4% msde los lmitesdados en xlim, ycalcula el nmerode intervalos quemejor se ajustan aesos lmites*

    "i" (interno) buscael nmero de in-tervalos ms ade-cuado a los datosoriginales

    xaxtpg. 96

    Valor lgico que especifica si serepresentan los intervalos del eje x

    "s"*

    "n"

  • PROGRAMACIN DE GRFICOS CON R 19

    xlabpg. 40 Texto de la leyenda del eje x Cualquier texto

    xlimpg. 42

    Vector numrico con el formatoc(x0, x1), donde x0 y x1 son loslmites del eje x

    Cualquier valor numrico

    xlogpg. 58

    Valor lgico que especifica si sepone el eje x en escala logartmica

    FALSE*

    TRUE

    yaxppg. 60

    Vector numrico con el formatoc(y1, y2, n), donde y1 e y2 son losextremos de las marcas del eje y, yn el nmero de intervalos o marcasen el eje

    Cualquier valor numrico

    yaxspg. 95

    Caracter que define como secalculan los intervalos en el eje y,donde el lmite viene definido porylim o los datos originales

    "r" (regular) extiende un 4%

    ms de los lmites dados en ylim, y calcula el nmero de intervalos que

    mejor se ajustan a esos lmites*

    "i" (interno) busca el nmero de

    intervalos ms adecuado a los datos originales

    yaxtpg. 96

    Valor lgico que especifica si serepresentan los intervalos del eje y

    "s"*

    "n"

    ylabpg. 40 Texto de la leyenda del eje y Cualquier texto

    ylimpg. 42

    Vector numrico con el formatoc(y0, y1), donde y0 e y1 son loslmites del eje y

    Cualquier valor numrico

    ylogpg. 58

    Valor lgico que especifica si sepone el eje y en escala logartmica

    FALSE*

    TRUE

  • GRFICOS ESTADSTICOS Y MAPAS CON R 20

    Con la funcin colors(), que viene en el paquete bsico, es posible obtener un listado de los 657 colores disponibles.

    "white" "aliceblue" "antiquewhite" "antiquewhite1" "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine" "aquamarine1" "aquamarine2" "aquamarine3" "aquamarine4" "azure" "azure1" "azure2" "azure3" "azure4" "beige" "bisque" "bisque1" "bisque2" "bisque3" "bisque4" "black" "blanchedalmond" "blue" "blue1" "blue2" "blue3" "blue4" "blueviolet" "brown" "brown1" "brown2" "brown3" "brown4" "burlywood" "burlywood1" "burlywood2" "burlywood3" "burlywood4" "cadetblue" "cadetblue1" "cadetblue2" "cadetblue3" "cadetblue4" "chartreuse" "chartreuse1" "chartreuse2" "chartreuse3" "chartreuse4" "chocolate" "chocolate1" "chocolate2" "chocolate3" "chocolate4" "coral" "coral1" "coral2" "coral3" "coral4" "cornflowerblue" "cornsilk" "cornsilk1" "cornsilk2" "cornsilk3" "cornsilk4" "cyan" "cyan1" "cyan2" "cyan3" "cyan4" "darkblue" "darkcyan" "darkgoldenrod" "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3" "darkgoldenrod4" "darkgray" "darkgreen" "darkgrey" "darkkhaki" "darkmagenta" "darkolivegreen" "darkolivegreen1" "darkolivegreen2" "darkolivegreen3" "darkolivegreen4" "darkorange" "darkorange1" "darkorange2" "darkorange3" "darkorange4" "darkorchid" "darkorchid1" "darkorchid2" "darkorchid3" "darkorchid4" "darkred" "darksalmon" "darkseagreen" "darkseagreen1" "darkseagreen2" "darkseagreen3" "darkseagreen4" "darkslateblue" "darkslategray" "darkslategray1" "darkslategray2" "darkslategray3" "darkslategray4" "darkslategrey" "darkturquoise" "darkviolet" "deeppink" "deeppink1" "deeppink2" "deeppink3" "deeppink4" "deepskyblue" "deepskyblue1" "deepskyblue2" "deepskyblue3" "deepskyblue4" "dimgray" "dimgrey" "dodgerblue" "dodgerblue1" "dodgerblue2" "dodgerblue3" "dodgerblue4" "firebrick" "firebrick1" "firebrick2" "firebrick3" "firebrick4" "floralwhite"

    I.4. Colores

  • PROGRAMACIN DE GRFICOS CON R 21

    "forestgreen" "gainsboro" "ghostwhite" "gold" "gold1" "gold2" "gold3" "gold4" "goldenrod" "goldenrod1" "goldenrod2" "goldenrod3" "goldenrod4" "gray" "gray0" "gray1" "gray2" "gray3" "gray4" "gray5" "gray6" "gray7" "gray8" "gray9" "gray10" "gray11" "gray12" "gray13" "gray14" "gray15" "gray16" "gray17" "gray18" "gray19" "gray20" "gray21" "gray22" "gray23" "gray24" "gray25" "gray26" "gray27" "gray28" "gray29" "gray30" "gray31" "gray32" "gray33" "gray34" "gray35" "gray36" "gray37" "gray38" "gray39" "gray40" "gray41" "gray42" "gray43" "gray44" "gray45" "gray46" "gray47" "gray48" "gray49" "gray50" "gray51" "gray52" "gray53" "gray54" "gray55" "gray56" "gray57" "gray58" "gray59" "gray60" "gray61" "gray62" "gray63" "gray64" "gray65" "gray66" "gray67" "gray68" "gray69" "gray70" "gray71" "gray72" "gray73" "gray74" "gray75" "gray76" "gray77" "gray78" "gray79" "gray80" "gray81" "gray82" "gray83" "gray84" "gray85" "gray86" "gray87" "gray88" "gray89" "gray90" "gray91" "gray92" "gray93" "gray94" "gray95" "gray96" "gray97" "gray98" "gray99" "gray100" "green" "green1" "green2" "green3" "green4" "greenyellow" "grey" "grey0" "grey1" "grey2" "grey3" "grey4" "grey5" "grey6" "grey7" "grey8" "grey9" "grey10" "grey11" "grey12" "grey13" "grey14" "grey15" "grey16" "grey17" "grey18" "grey19" "grey20" "grey21" "grey22" "grey23" "grey24" "grey25" "grey26" "grey27" "grey28" "grey29" "grey30" "grey31" "grey32" "grey33"

  • GRFICOS ESTADSTICOS Y MAPAS CON R 22

    "grey34" "grey35" "grey36" "grey37" "grey38" "grey39" "grey40" "grey41" "grey42" "grey43" "grey44" "grey45" "grey46" "grey47" "grey48" "grey49" "grey50" "grey51" "grey52" "grey53" "grey54" "grey55" "grey56" "grey57" "grey58" "grey59" "grey60" "grey61" "grey62" "grey63" "grey64" "grey65" "grey66" "grey67" "grey68" "grey69" "grey70" "grey71" "grey72" "grey73" "grey74" "grey75" "grey76" "grey77" "grey78" "grey79" "grey80" "grey81" "grey82" "grey83" "grey84" "grey85" "grey86" "grey87" "grey88" "grey89" "grey90" "grey91" "grey92" "grey93" "grey94" "grey95" "grey96" "grey97" "grey98" "grey99" "grey100" "honeydew" "honeydew1" "honeydew2" "honeydew3" "honeydew4" "hotpink" "hotpink1" "hotpink2" "hotpink3" "hotpink4" "indianred" "indianred1" "indianred2" "indianred3" "indianred4" "ivory" "ivory1" "ivory2" "ivory3" "ivory4" "khaki" "khaki1" "khaki2" "khaki3" "khaki4" "lavender" "lavenderblush" "lavenderblush1" "lavenderblush2" "lavenderblush3" "lavenderblush4" "lawngreen" "lemonchiffon" "lemonchiffon1" "lemonchiffon2" "lemonchiffon3" "lemonchiffon4" "lightblue" "lightblue1" "lightblue2" "lightblue3" "lightblue4" "lightcoral" "lightcyan" "lightcyan1" "lightcyan2" "lightcyan3" "lightcyan4" "lightgoldenrod" "lightgoldenrod1" "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4" "lightgoldenrodyellow" "lightgray" "lightgreen" "lightgrey" "lightpink" "lightpink1" "lightpink2" "lightpink3" "lightpink4" "lightsalmon" "lightsalmon1" "lightsalmon2" "lightsalmon3" "lightsalmon4" "lightseagreen" "lightskyblue" "lightskyblue1" "lightskyblue2" "lightskyblue3" "lightskyblue4" "lightslateblue" "lightslategray" "lightslategrey" "lightsteelblue" "lightsteelblue1" "lightsteelblue2" "lightsteelblue3" "lightsteelblue4" "lightyellow" "lightyellow1" "lightyellow2" "lightyellow3" "lightyellow4" "limegreen" "linen" "magenta"

  • PROGRAMACIN DE GRFICOS CON R 23

    "magenta1" "magenta2" "magenta3" "magenta4" "maroon" "maroon1" "maroon2" "maroon3" "maroon4" "mediumaquamarine" "mediumblue" "mediumorchid" "mediumorchid1" "mediumorchid2" "mediumorchid3" "mediumorchid4" "mediumpurple" "mediumpurple1" "mediumpurple2" "mediumpurple3" "mediumpurple4" "mediumseagreen" "mediumslateblue" "mediumspringgreen" "mediumturquoise" "mediumvioletred" "midnightblue" "mintcream" "mistyrose" "mistyrose1" "mistyrose2" "mistyrose3" "mistyrose4" "moccasin" "navajowhite" "navajowhite1" "navajowhite2" "navajowhite3" "navajowhite4" "navy" "navyblue" "oldlace" "olivedrab" "olivedrab1" "olivedrab2" "olivedrab3" "olivedrab4" "orange" "orange1" "orange2" "orange3" "orange4" "orangered" "orangered1" "orangered2" "orangered3" "orangered4" "orchid" "orchid1" "orchid2" "orchid3" "orchid4" "palegoldenrod" "palegreen" "palegreen1" "palegreen2" "palegreen3" "palegreen4" "paleturquoise" "paleturquoise1" "paleturquoise2" "paleturquoise3" "paleturquoise4" "palevioletred" "palevioletred1" "palevioletred2" "palevioletred3" "palevioletred4" "papayawhip" "peachpuff" "peachpuff1" "peachpuff2" "peachpuff3" "peachpuff4" "peru" "pink" "pink1" "pink2" "pink3" "pink4" "plum" "plum1" "plum2" "plum3" "plum4" "powderblue" "purple" "purple1" "purple2" "purple3" "purple4" "red" "red1" "red2" "red3" "red4" "rosybrown" "rosybrown1" "rosybrown2" "rosybrown3" "rosybrown4" "royalblue" "royalblue1" "royalblue2" "royalblue3" "royalblue4" "saddlebrown" "salmon" "salmon1" "salmon2" "salmon3" "salmon4" "sandybrown" "seagreen" "seagreen1" "seagreen2" "seagreen3" "seagreen4" "seashell" "seashell1" "seashell2" "seashell3" "seashell4" "sienna" "sienna1" "sienna2" "sienna3" "sienna4" "skyblue" "skyblue1" "skyblue2" "skyblue3" "skyblue4" "slateblue" "slateblue1" "slateblue2" "slateblue3" "slateblue4" "slategray" "slategray1" "slategray2" "slategray3" "slategray4" "slategrey" "snow" "snow1"

  • GRFICOS ESTADSTICOS Y MAPAS CON R 24

    "snow2" "snow3" "snow4" "springgreen" "springgreen1" "springgreen2" "springgreen3" "springgreen4" "steelblue" "steelblue1" "steelblue2" "steelblue3" "steelblue4" "tan" "tan1" "tan2" "tan3" "tan4" "thistle" "thistle1" "thistle2" "thistle3" "thistle4" "tomato" "tomato1" "tomato2" "tomato3" "tomato4" "turquoise" "turquoise1" "turquoise2" "turquoise3" "turquoise4" "violet" "violetred" "violetred1" "violetred2" "violetred3" "violetred4" "wheat" "wheat1" "wheat2" "wheat3" "wheat4" "whitesmoke" "yellow" "yellow1" "yellow2" "yellow3" "yellow4" "yellowgreen"

    La funcin colorTable() del paquete fBasics (Wuertz, 2011) permite ver los nmeros de los diferentes tipos de colores.

    library(fBasics) colorTable(cex=1)

    La funcin show.colors() del paquete DAAG (Maindonald, 2011) permite ver los nombres de los diferentes tipos de colores: "singles" son los colores que no tienen diferentes intensidades, "shades" son los que si tienen diferentes in-tensidades y "gray" es para ver la escala de grises.

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

  • PROGRAMACIN DE GRFICOS CON R 25

    library(DAAG) show.colors("singles")

    show.colors("shades")

    darkred

    darkmagenta

    mediumvioletred

    peru

    lightcoral

    darksalmon

    sandybrown

    black

    darkgreen

    forestgreen

    mediumseagreen

    limegreen

    darkkhaki

    mediumspringgreen

    lawngreen

    lightgreen

    greenyellow

    navy

    midnightblue

    darkviolet

    darkslateblue

    blueviolet

    dimgray

    mediumslateblue

    lightslateblue

    lightslategray

    cornflowerblue

    lightseagreen

    violet

    darkturquoise

    darkgray

    mediumturquoise

    lightgray

    powderblue

    gainsboro

    palegoldenrod

    moccasin

    lavender

    blanchedalmond

    papayawhip

    linen

    beige

    oldlace

    aliceblue

    lightgoldenrodyellow

    ghostwhite

    floralwhite

    mintcream

    white

    red

    magenta

    deeppink

    firebrick

    orangered

    maroon

    brown

    violetred

    tomato

    indianred

    coral

    darkorange

    chocolate

    hotpink

    sienna

    palevioletred

    salmon

    orange

    lightsalmon

    tan

    1 2 3 4darkgoldenrod

    lightpink

    goldenrod

    gold

    burlywood

    green

    springgreen

    chartreuse

    seagreen

    palegreen

    olivedrab

    lightgoldenrod

    darkolivegreen

    yellow

    darkseagreen

    khaki

    blue

    purple

    darkorchid

    royalblue

    1 2 3 4

    slateblue

    dodgerblue

    mediumorchid

    mediumpurple

    deepskyblue

    orchid

    steelblue

    turquoise

    skyblue

    pink

    cyan

    plum

    rosybrown

    lightskyblue

    lightsteelblue

    slategray

    peachpuff

    aquamarine

    navajowhite

    cadetblue

    1 2 3 4

    lightblue

    bisque

    darkslategray

    wheat

    thistle

    mistyrose

    paleturquoise

    antiquewhite

    lavenderblush

    seashell

    lemonchiffon

    cornsilk

    lightcyan

    honeydew

    snow

    azure

    lightyellow

    ivory

    1 2 3 4

  • GRFICOS ESTADSTICOS Y MAPAS CON R 26

    show.colors("gray")

    En el script I.1.R se muestran las tres funciones ms importantes que per-miten representar colores. La funcin rgb() permite hacer mltiples combina-ciones de colores, donde el primer nmero es para definir la intensidad del color rojo, el segundo para el verde y el tercero para el azul, en una escala de 0 a 255. El argumento alpha indica el grado de transparencia (rango de 0 a 255).

    plot(0,0, type="n", xlim=c(-1,10), ylim=c(0,10), axes=F, xlab="", ylab="") text(-0.5,1.5,"rgb", cex=1.5) color

  • PROGRAMACIN DE GRFICOS CON R 27

    La funcin hcl() tambin permite hacer diferentes colores, donde h de-fine el color en un rango de 0 a 360, c es la intensidad de color (de 0 a 100) y l es la luminosidad (tambin de 0 a 100, valores ms pequeos es ms oscuro).

    text(-0.5,4.5,"hcl", cex=1.5) color

  • GRFICOS ESTADSTICOS Y MAPAS CON R 28

    La funcin color.scale() del paquete plotrix (Lemon, 2012) permite utili-zar algunas de las paletas mencionadas anteriormente, hcl, hsv y rgb, para poder hacer gradientes de colores. Las instrucciones estn en el script I.2.R.

    En la primera parte del script se hace un grfico sin ejes, para lo cual se usa el argumento axes=FALSE, y luego se pone el eje y con la funcin axis(), aadiendo etiquetas al eje.

    En la funcin color.scale(), el argumento x define cual es el valor o rango de valores que tomarn los puntos. En este caso, como se representan 10 puntos, es una secuencia de 1 a 10. El argumento alpha indica el grado de transparencia (rango de 0 a 1). El argumento na.color especifica el color de los datos vacos de la variable x.

    Los argumentos cs1, cs2, y cs3 definen los tres parmetros de color, dependiendo del sistema utilizado. En rgb y hsv la escala es de 0 a 1 en los tres argumentos cs1, cs2 y cs3. En hcl la escala es de 0 a 360 para cs1, y de 0 a 100 para cs2 y cs3. En hsv y hcl, en los tres argumentos se puede poner un nico valor o un vector con dos valores, que indicaran un rango. Por ejemplo, en hsv cs1=0 indica que solo se pinta en color rojo, mientras que cs1=c(0,0.5) indica que varan los colores del rojo al azul.

    library(plotrix) plot(1:10,rep(1:3,length.out=10),axes=FALSE,type="n",xlim=c(0,11),ylim=

    c(0,18), main="Test de rgb, hsv y hcl",xlab="",ylab="Paletas de colores", cex.lab=1.7, cex.main=1.9)

    par(cex=0.8,font=2) axis(2,at=1:18,labels=c("rgb","","rgb","","rgb","","hcl","","hcl","","hcl","","

    hsv","","hsv","","hsv","")) #rgb points(1:10,rep(1,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0,0.1,1),

    cs2=c(1,0.7,1),cs3=c(1,0.5,0),color.spec="rgb",alpha=1,na.color=NA)) points(1:10,rep(3,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0,1,1),

    cs2=c(1,1,0),cs3=0,color.spec="rgb",alpha=1,na.color=NA)) points(1:10,rep(5,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0,1,1),

    cs2=c(1,1,0),cs3=c(0,0.5,1),color.spec="rgb",alpha=1,na.color=NA)) #hcl points(1:10,rep(7,10), pch=19,cex=7, col=color.scale(x=1:10, cs1=c(0,100),

    cs2=c(25,55),cs3=c(85,25), color.spec="hcl",alpha=1,na.color=NA)) points(1:10,rep(9,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(100,0),

    cs2=c(55,25),cs3=c(25,85), color.spec="hcl",alpha=1,na.color=NA)) points(1:10,rep(11,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(200,0),

    cs2=c(55,85),cs3=c(55,85), color.spec="hcl",alpha=1,na.color=NA)) #hsv points(1:10,rep(13,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0.5,1),

    cs2=c(0.5,1),cs3=c(1,1),color.spec="hsv",alpha=1,na.color=NA)) points(1:10,rep(15,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0,1),

    cs2=c(0.8,1),cs3=c(0.5,1),color.spec="hsv",alpha=1,na.color=NA)) points(1:10,rep(17,10),pch=19,cex=7,col=color.scale(x=1:10,cs1=c(0.5,1),

    cs2=c(0.2,1),cs3=c(1,1),color.spec="hsv",alpha=1,na.color=NA))

  • PROGRAMACIN DE GRFICOS CON R 29

    En el siguiente grfico del script se muestra un ejemplo sencillo de cmo usar color.scale(). En primer lugar se generan dos vectores y el color de los pun-tos en la funcin color.scale() lo define el valor de y. Con la funcin par(oma=c(3,3,3,4)) se dejan ms lneas en el eje y derecho para poder mostrar la leyenda de colores. La funcin color.legend() permite una barra de colores a modo de leyenda. Con los argumentos xl, yb, xr e yt se define la posicin de la leyenda. Con gradient se especifica si el rango de colores cambia en el sentido del eje x o del y. Con el argumento align se es-pecifica si las etiquetas de las leyendas se ponen por la izquierda (barra hori-zontal) o arriba (barra vertical) con lt, o por la derecha (barra horizontal) o abajo (barra vertical) con rb. Por ltimo, en el argumento rect.color se debe poner la misma secuencia y tipo de colores utilizada en el grfico.

    x

  • GRFICOS ESTADSTICOS Y MAPAS CON R 30

    Tambin son muy tiles las paletas de colores que se pueden obtener con al-guna de las funciones gray.colors(), rainbow(), heat.colors(), terrain.colors(), topo.colors() o cm.colors() del paquete grDevices, el cual se instala por defecto con R. A modo de ejemplo, las siguientes instrucciones representan un diagrama de tartas, en el cual el gradiente de co-lores se realiza con las funciones mencionadas anteriormente. Las instrucciones estn en el script I.3.R.

    En todas las funciones el argumento alpha indica el grado de transparencia (rango de 0 a 1). En el caso de la funcin rainbow() con el argumento s se especifica el grado de saturacin (rango de 0 a 1). Con v se puede oscurecer ms o menos (rango de 0 a 1), donde 0 es negro y 1 es la mxima claridad. Los argumentos start (rango de 0 a 1) y end (rango de 0 a 1) son los colores corregidos donde comienza y finaliza el arco iris, respectivamente. pie(rep(1,50), col=gray.colors(n=50)) text(0,1,"gray.colors()",font=2,cex=1.5) pie(rep(1,15), col=rainbow(n=15, s =1, v=1, start=0, end=0.9, alpha=1)) text(0,1,"rainbow()",font=2,cex=1.5) pie(rep(1,50), col=heat.colors(n=50)) text(0,1,"heat.colors()",font=2,cex=1.5) pie(rep(1,50), col=terrain.colors(n=50)) text(0,1,"terrain.colors()",font=2,cex=1.5) pie(rep(1,50), col=topo.colors(n=50)) text(0,1,"topo.colors()",font=2,cex=1.5) pie(rep(1,50), col=cm.colors(n=50)) text(0,1,"cm.colors()",font=2,cex=1.5)

    0 10 20 30 40 50

    2040

    6080

    1

    21

    41

    61

    81

  • PROGRAMACIN DE GRFICOS CON R 31

    12

    34

    56

    78

    91011

    121314151617

    1819

    2021

    2223

    2425262728

    2930

    3132

    3334

    35 36 37 38 39 4041

    4243

    4445

    4647

    484950

    gray.colors()

    1

    2

    345

    6

    7

    8

    9

    10

    11 1213

    14

    15

    rainbow()

    12

    34

    56

    78

    91011

    121314151617

    1819

    2021

    2223

    2425262728

    2930

    3132

    3334

    35 36 37 38 39 4041

    4243

    4445

    4647

    484950

    heat.colors()

    12

    34

    56

    78

    91011

    121314151617

    1819

    2021

    2223

    2425262728

    2930

    3132

    3334

    35 36 37 38 39 4041

    4243

    4445

    4647

    484950

    terrain.colors()

    12

    34

    56

    78

    91011

    121314151617

    1819

    2021

    2223

    2425262728

    2930

    3132

    3334

    35 36 37 38 39 4041

    4243

    4445

    4647

    484950

    topo.colors()

    12

    34

    56

    78

    91011

    121314151617

    1819

    2021

    2223

    2425262728

    2930

    3132

    3334

    35 36 37 38 39 4041

    4243

    4445

    4647

    484950

    cm.colors()

  • GRFICOS ESTADSTICOS Y MAPAS CON R 32

    En muchas ocasiones a los grficos hay que aadirles frmulas matemticas o texto con caracteres especiales, que se pueden realizar con la funcin plotmath() (Murrell y Ihaka, 2000), combinada con alguna de las funciones expression(), substitute() y/o paste(). A continuacin se muestran algunos ejemplos, los cuales estn en el script I.4.R, y en la tabla siguiente al-gunos cdigos tiles de la funcin plotmath() para construir frmulas y tex-tos especiales. Para que estas instrucciones funcionen deben integrarse en los grficos usando las funciones mtext(), title() o text(), como se mos-trar en varios ejemplos en el prximo captulo.

    expression(x^2==sum(sum(frac(((O[mc] - E[mc]) - frac(1,2))^2, E[mc]), c-

    1, i), m-1, j))

    expression(L[t]==L[infinity](1-e^-k(t-t[0])))

    expression(a[i] == sqrt(b[i]^2 + c[i]^2))

    !

    expression("r"==paste(frac(paste(mu[max]*"S"), paste("K"[s]+"S"))))

    " #$%&'( & expression(bar(x) == frac(sum(x[i], n, i==1), n))

    ) n

    xn

    ii

    1

    expression(paste("Produccin primaria en mg C m"^"-2","d"^"-1"))

    Produccin primaria en mg C m-2 d-1

    expression(bold(paste("Pigmentos de ", italic("Alexandrium minutum"))))

    Pigmentos de Alexandrium minutum

    I.5. Frmulas matemticas y caracteres especiales

  • PROGRAMACIN DE GRFICOS CON R 33

    Tabla I.1. Tabla de cdigos para la construccin de frmulas utilizando las funciones plotmath() y expression().

    ) bar(x)

    n

    iix

    1

    sum(x[i], i==1, n) infinity

    * hat(x) +,- %

    prod(plain(P)(X==x), x)

    alpha A Alpha

    ./ widehat(xy) 0 123$

    integral(f(x)*dx, a, b)

    beta B Beta

    4 tilde(x) 567

    8

    union(A[i], i==1, n)

    gamma Gamma

    .9 widetilde(xy) :67

    8

    intersect(A[i], i==1, n)

    delta Delta

    ; dot(x) ?@ 1 lim(f(x), x %->% 0)

    epsilon E Epsilon

    x plain(x) >=A%BC 1

    min(f(x), x > 0) zeta Z Zeta

    x bold(x) x y x %subset% y

    eta H Eta

    x italic(x) x y x %subseteq% y theta Theta

    x bolditalic(x) x y x %notsubset% y

    iota I Iota

    %D frac(x,y) x y x %supset% y kappa K Kappa D%atop(x,y) x y x %supseteq% y lambda Lambda x2 x^2 x y x %in% y

    mu M Mu

    x2 x[2] x y x %notin% y nu N Nu

    E sqrt(x) x displaystyle(x) xi Xi

  • GRFICOS ESTADSTICOS Y MAPAS CON R 34

    EF sqrt(x,y) x textstyle(x) pi Pi x y x %+-% y x scriptstyle(x)

    rho P Rho

    x / y x %/% y x scriptscriptstyle(x) sigma Sigma

    x * y x %*% y x y x ~~ y tau T Tau

    x y x = y x y x %% y phi Phi

    x y x %~~% y x y x %->% y chi X Chi

    x y x %==% y x y x %% y x y x %dblup% y

    x y x %

  • PROGRAMACIN DE GRFICOS CON R 35

    exportarlo a otros formatos de archivo usando las funciones mencionadas ante-riormente.

    En el script se hace una funcin con function() y varios bucles con for(). Adems se usan varias funciones grficas como plot(), mtext(), text(), rug() y points(), que se explicarn en detalle en el Captulo II.

    El archivo pdf con el grfico exportado estar en el directorio de trabajo. Siempre que se exporte a un archivo es conveniente cerrar el dispositivo con la funcin dev.off(). Cada vez que se ejecuta la funcin windows() se abre una ventana, es decir, que se van superponiendo las ventanas sin borrar las anteriores. En el grfico se puede observar como varan los colores conforme cambian los valores de rojo, verde y azul. #Se muestra en la pantalla windows(15,6) funcion

  • GRFICOS ESTADSTICOS Y MAPAS CON R 36

    #Se exporta a un archivo pdf pdf("Paleta rgb.pdf",paper="a4r",w=15,h=6) funcion() dev.off()

    Paleta rgb

    Rojo

    Verd

    e

    Azul (0) Azul (50) Azul (100) Azul (150) Azul (200) Azul (250)

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    0

    000000

    50

    505050505050

    100

    100100100100100100

    150

    150150150150150150

    200

    200200200200200200

    250

    250250250250250250

    Dispositivos para grficos

    windows(width=7, height=7, pointsize = 1/72 inch, rescale = "R", xpinch = NA_real_, ypinch = NA_real_, bg = "transparent", canvas = "white", gamma = 1, xpos = -25, ypos = 0, buffered = TRUE, title = "", clickToConfirm = TRUE, fillOddEven = TRUE ) win.print(width = 7, height = 7, pointsize = 12, printer = "") bmp(filename = "Rplot%03d.bmp", width = 480, height = 480, units = "px", pointsize = 12, bg = "white", res = NA) jpeg(filename = "Rplot%03d.jpg", width = 480, height = 480, units = "px", pointsize = 12, quality = 75, bg = "white", res = NA) png(filename = "Rplot%03d.png", width = 480, height = 480, units = "px", pointsize = 12, bg = "white", res = NA) tiff(filename = "Rplot%03d.tif", width = 480, height = 480, units = "px", pointsize = 12, compression = "none", res = NA) bitmap(file, type = "png16m", height = 7, width = 7, res = 72, units = "in", pointsize) pdf(file = ifelse(onefile, "Rplots.pdf", "Rplot%03d.pdf"), width = 7, height = 7, onefile, family = "Helvetica", title, version = "1.4", paper = "special", encoding, bg = "transparent", fg = "black", pointsize, pagecentre = TRUE, colormodel = "rgb", fillOddEven)

  • PROGRAMACIN DE GRFICOS CON R 37

    Dispositivos para grficos (Continuacin) bg: color de fondo. buffered: si es TRUE se evitan posibles parpadeos a la hora de

    mostrar el grfico. canvas: color del dispositivo cuando el fondo es transparente. clickToConfirm: si es TRUE cuando se crea un nuevo grfico la

    confirmacin se hace con un click en la pantalla con el ratn, en vez de respondiendo a una pregunta en la consola.

    colormodel: tipo de paleta de colores: "rgb", "gray" o "cmyk". compression: tipo de archivo comprimido que puede ser "none",

    "rle", "lzw", "jpeg" o "zip". family: tipo de fuente de letra. fg: color que se pone al frente. filename: nombre del archivo. fillOddEven: si es TRUE la manera en que se resuelve la interseccin

    de formas se hace de forma automtica por R. onefile: si es TRUE permite varias figuras en un solo archivo. pagecentre: si es TRUE todo lo que se imprime en el pdf se centra. paper: tamao del papel: "a4", "letter", "legal", "executive", "a4r",

    "USr" o "special", en este ltimo el tamao viene definido por width y height.

    pointsize: tamao del texto. printer: nombre de la impresora como la reconoce el sistema opera-

    tivo del ordenador. quality: calidad del archivo jpeg en porcentaje. res: resolucin en ppi para texto y ancho de lneas. rescale: define como re-escala el grfico cuando se agranda la panta-

    lla y las opciones son "R", "fit" o "fixed". title: ttulo de la salida. type: tipo de bitmap. units: unidades del width y height en pxeles "px", centmetros "cm"

    o pulgadas "in". version: versin de pdf necesaria para poder ver el archivo. width y height: ancho y alto en pulgadas. xpinch e ypinch: pxeles por pulgada. El valor por defecto NA_real_

    significa que tome los valores por defecto de Windows. xpos e ypos: posicin en pxeles del cuadrante superior izquierdo de

    la ventana.

  • GRFICOS BSICOS

    Se utilizan muy frecuentemente, y representan dos variables cuantitativas en

    un sistema de coordenadas rectangulares. Para el ejemplo se usar el conjunto de datos iris, y se representarn dos variables con relacin lineal entre ellas: Petal.Length y Petal.Width. Para el grfico de dispersin ms simple, utili-zamos la funcin plot() sin modificar ninguno de sus argumentos por defecto. La funcin par(ps=15) permite definir el tamao de la letra. Las instrucciones estn en el archivo II.1.R.

    data(iris) attach(iris) par(ps=15) plot(Petal.Length,Petal.Width)

    CAPTULO II

    II.1. Grficos de dispersin

    1 2 3 4 5 6 7

    0.5

    1.0

    1.5

    2.0

    2.5

    Petal.Length

    Peta

    l.Wid

    th

    39

  • GRFICOS ESTADSTICOS Y MAPAS CON R 40

    Ahora podemos ir aadiendo y modificando elementos en el grfico. Como

    muchas veces existen varios datos en el mismo punto, con la funcin sunflowerplot() es posible que pinte tantas rayas como nmero de datos coinciden en el mismo punto. Los argumentos que iremos cambiando sirven tanto para la funcin sunflowerplot() como para la funcin plot(). Con el argumento pch es posible cambiar el tipo de smbolo:

    sunflowerplot(Petal.Length,Petal.Width, pch=19) Ahora cambiamos el rtulo de los ejes, de forma que el nombre de las varia-

    bles tenga un mejor formato y se indiquen las unidades. Esto podramos hacerlo con los argumentos xlab e ylab:

    sunflowerplot(Petal.Length, Petal.Width,pch=19, xlab="Longitud (cm)",

    ylab="Anchura (cm)")

    Ahora le podemos aadir un ttulo, para lo cual existen dos opciones: o bien el argumento main, dentro de las funciones plot() o sunflowerplot(), o bien otra funcin llamada title(). En este caso optaremos por la primera op-cin.

    sunflowerplot(Petal.Length,Petal.Width,pch=19, xlab="Longitud (cm)",

    ylab="Anchura (cm)", main=" Longitud de ptalo vs Anchura de ptalo") Ahora haremos una serie de ajustes en el tipo de letra: convertiremos en ne-

    grita la letra de la escala en los ejes (con font.axis), la etiqueta de los ejes (con font.lab), aumentaremos el tamao de letra en el ttulo (con cex.main) y en la etiqueta de los ejes (con cex.lab). Adems, cambiare-mos el tipo de letra en todo el grfico para que sea Times New Roman (con family). Los valores de cada uno de los argumentos anteriores seran los si-guientes: para negrita, el valor es 2, para el tamao de fuente se usa un nmero que es una proporcin relativa al tamao actual (1). As pues, si lo cambiamos a 0,5, el tamao se reducira un 50%, si lo aumentamos a 1,5, se aumentara un 50%. El valor de family para Times New Roman es serif. El argumento asp

    Funcin plot (paquete graphics) x e y: coordenadas de los puntos. type:

    "p": puntos. "l": lneas. "b": puntos y lneas sin superposicin. "c": deja las lneas y pone un hueco donde van los puntos. "o": puntos y lneas superpuestos. "s": en escalera, con movimiento horizontal y luego vertical. "S": en escalera, con movimiento vertical y luego horizontal. "h": lneas de alta densidad, tipo histograma. "n": sin representacin.

    Se pueden usar todos los argumentos generales.

  • GRFICOS BSICOS 41

    define la proporcin de escala o relacin de aspecto de los ejes, es decir, una unidad en x tiene la misma longitud que asp unidades en y.

    sunflowerplot(Petal.Length,Petal.Width,pch=19, xlab="Longitud (cm)",

    ylab="Anchura (cm)", main=" Longitud de ptalo vs Anchura de ptalo", font.axis=2, font.lab=2, cex.main=1.5, cex.lab =1.25, family="serif", asp=1.5, ylim=c(0.5,2.5))

    A continuacin aadiremos a este grfico una recta de regresin con la fun-

    cin abline(). En esta funcin es necesario especificar los valores de los parmetros de la recta. Para conocer esos valores haremos un modelo lineal con la funcin lm(), y utilizaremos el resultado como parmetro de abline():

    reg

  • GRFICOS ESTADSTICOS Y MAPAS CON R 42

    Vamos ahora con un ejemplo en el que complicaremos un poco ms las cosas.

    Se trata de una grfica de dispersin similar a la anterior, en la que queremos resaltar diferentes grupos de datos. Las instrucciones estn en el archivo II.2.R. Utilizaremos nuevamente el conjunto de datos iris, por lo que debemos cargarlo con data() y adjuntarlo con attach() para poder localizar a las variables por su nombre. Vamos a representar la variable longitud de ptalo frente a la variable longitud de spalo, diferenciando los resultados para cada especie. El conjunto total de rdenes se muestran a continuacin; iremos explicndolas una por una.

    La primera instruccin, plot(), sirve para representar el diagrama de dis-persin para la especie setosa. Adems aadimos un rango de valores para los ejes, xlim e ylim, indicamos que se usa un crculo relleno como smbolo pch=19, de color azul con col="blue" y que la etiqueta de los ejes est en blanco (eso es as porque est previsto etiquetar los ejes con otra funcin). Con la funcin colors() podemos obtener el listado de