Lee el conjunto de datos biom2003.dat, situado en http://gauss.inf.um.es/datos

biom <- read.table( "http://gauss.inf.um.es/datos/biom2003.dat",
                    sep = "", 
                    header = TRUE )

Observa el siguiente gráfico, ¿ves que hay puntos que se superponen? ¿Qué podemos hacer para verlos mejor?

plot( biom$Altura, biom$Peso, pch = 20, col = "grey50", 
      main = "Altura vs peso",
      xlab = "Eje X", ylab= "Eje Y")

Pista: utiliza las funciones jitter() y rgb() como argumentos de plot().

plot( biom$Altura, biom$Peso, pch = 20, 
      col = rgb( .5, .5, .5, 0.3 ), cex = 1.5 )

plot( jitter( biom$Altura ), jitter( biom$Peso ), 
      pch = 20, col = rgb( 0.5, 0.5, 0.5, 0.3 ) )

Identificación de casos

Otras funciones muy interesantes son las siguientes:

plot( biom$Altura , biom$Peso, col= "grey", pch = 20)
locator( )
# nos devuelve las coordenadas de los puntos que señalemos

Etiquetar los casos

identify( biom$Altura , biom$Peso )

Añade una retícula ( grid() ) al gráfico ordenando adecuadamente la presentación de los elementos.

plot( biom$Altura , biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = 20,
    col = "blue"
    ) 
# Añadimos una retícula
grid( ) 

¿Veis algo raro? ¿Qué ha ocurrido? Vamos a exagerarlo

plot( biom$Altura ,biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = 20,
    col = "blue"
    )
    grid(col = "brown", lwd = 2)

Vemos que se dibuja la retícula sobre los puntos. Solución: representar por pasos

# Lanzamos el gráfico vacío
plot(biom$Altura ,  biom$Peso,  main = "Altura vs peso", type = "n")
# Añadimos la retícula
grid(col = "grey", lwd = 2) # grid
# Añadimos los puntos al gráfico existente
points(biom$Altura,biom$Peso,
       lwd = 3,
       pch = 20,
       col = biom$Sexo
       )

Otra opción es utilizar la función grid() como argumento de plot() obteniendo lo siguiente:

plot( biom$Altura ,biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = 20,
    col = biom$Sexo + 1,
     grid(col = "grey", lwd = 2) )

Como veis en R no existe un única solución.

Exporta el gráfico en formato .PNG

Utiliza para ello la función png()

# Primera forma
png( filename = "ejercicio2.png", width = 854, height = 579, pointsize = 12 )
    plot( biom$Altura ,  biom$Peso,  main = "Altura vs peso", type = "n" )
    grid( col = "brown", lwd = 2 ) # grid
    points( biom$Altura,  biom$Peso,  lwd = 3, pch = 20,col = "blue"   )
dev.off()
## png 
##   2

Deja traza del tipo de sesión

sessionInfo()
## R version 3.4.3 (2017-11-30)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.4 LTS
## 
## Matrix products: default
## BLAS: /usr/lib/libblas/libblas.so.3.6.0
## LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
## 
## locale:
##  [1] LC_CTYPE=es_ES.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_ES.UTF-8        LC_COLLATE=es_ES.UTF-8    
##  [5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=es_ES.UTF-8   
##  [7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] compiler_3.4.3  backports_1.1.2 magrittr_1.5    rprojroot_1.3-2
##  [5] tools_3.4.3     htmltools_0.3.6 yaml_2.1.16     Rcpp_0.12.15   
##  [9] stringi_1.1.6   rmarkdown_1.8   knitr_1.18      stringr_1.2.0  
## [13] digest_0.6.14   evaluate_0.10.1