Gráficos

Transforma (los gráficos de) España

Ha aparecido en diversos medios la noticia de la presentación al rey de una propuesta de la Fundación Everis que ha venido a titular TransformaEspaña (así, junto). El estudio que define la propuesta

[…] pone de relieve la gravedad de la actual crisis económica, sus causas y consecuencias, propone una serie de soluciones y actuaciones en todos los ámbitos del sistema que deben producirse en los próximos años para generar un verdadero cambio.

A vueltas con los fractales

R

Si bien no hace mucho publicaba una entrada sobre el triángulo de Sierpinsky, mi tocayo Carlos Ortega (y ahora gentil colaborador) nos ha proporcionado un enlace en este blog a un pedazo de código que bien vale la pena replicar aquí para el solaz (y tal vez, incluso, provecho) de los lectores de estas páginas. Es:

    library(fields)         # for tim.colors
    library(caTools)        # for write.gif
    m = 400                 # grid size

    C <- complex(
        real=rep(seq(-1.8,0.6, length.out=m), each=m ),
        imag=rep(seq(-1.2,1.2, length.out=m), m ) )
    C <- matrix(C,m,m)
    Z <- 0
    X <- array(0, c(m,m,20))

    for (k in 1:20) {
        Z <- Z^2+C
        X[,,k] <- exp(-abs(Z))
    }
    image(X[,,k], col=tim.colors(256))
    write.gif(X, "Mandelbrot.gif", col=tim.colors(256), delay=100)

(extraído de aquí).

Hoy me he enamorado en el metro

Hoy me he enamorado en el metro. Apenas comenzaba a leer mi articulillo cuando he tropezado con esta frase:

GPL treats data as an accessory to viewing a graph.

Y la siguiente era aún mejor:

GPL is based on the mathematical definition of the graph of a function and uses that definition to organize data linked to the graph.

Y más adelante:

[…] it is based on the assumption that statistical procedures serve graphics; graphics are not ancillary displays of statistical results, but are means of perceiving statistical relationships directly.

¿Qué gráfico es mejor?

Los servidores del Parlamento Británico alojan (y ponen a disposición del público) una serie documentos agrupados por temas de los que hoy nos interesarán los relativos a política estadística y, dentro de ellos, un breve manual muy útil para elaborar gráficas que se atengan a los tres principios fundamentales de este esquivo arte:

  • Veracidad: la gráfica debe reflejar verazmente los datos subyacentes
  • Economía: la gráfica debe mostrar únicamente aquellos elementos necesarios para comprenderla
  • Claridad: los elementos gráficos y textuales de la gráfica deben ser lo más claros posible para facilitar su comprensión por parte del lector.

Ahí va un ejemplo de cómo puede este documento ayudar a mejorar las gráficas de quienes lo lean con el debido detenimiento. La de la izquierda es el tipo de gráfica a la que nos tienen acostumbrados los consultores bisoños; la de la derecha es la versión que propone el autor del documento.

Representando gráficamente conjuntos de datos pequeños

R

Últimamente me están llegando conjuntos de datos para analizar con muy pocos registros. He aquí un subconjunto de uno de ellos (de hoy y debidamente anonimizado):

nivel.proteina <- c( 11.56, 10.43, 11.00, 10.92, 10.08, 9.98, 10.35,
  9.55, 9.19, 7.00, 6.72, 6.43, 7.43, 7.26, 6.67,  7.49, 8.03, 8.17,
  6.79, 7.68, 7.01, 7.51, 6.90, 7.27, 7.56, 8.61, 8.16, 7.12 )
grupo <- c(0,0,0,0,0,0,0,0,0,
  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
datos <- data.frame( nivel.proteina, grupo )

Le he estado dando vueltas a la manera de representar gráficamente este tipo de conjunto de datos de la manera en que deben hacerse estas cosas: que con un mero golpe de vista pueda hacerse uno con ellos.

Gráficos en R con símbolos arbitrarios: código, comentarios y fin

R

Prometí el otro día revelar los secretos (pensaba que no lo eran tanto) del gráfico que mostré en esta entrada. Los impacientes tienen aquí todo lo que necesitan. Tienen que ejecutar primero el guión svg2ps.sh que invoca inkscape para transformar los ficheros svg (incluidos en la descarga) de las banderas (obtenidos de la Wikipedia) en ficheros postscript.

El programa src.R genera entonces el gráfico utilizando dos paquetes de R: grImport y lattice. El primero permite convertir postscript en xml y posteriormente en objetos de la clase picture.

Gráficos en R con símbolos arbitrarios

R

Hace no mucho, en un blog hermano, se habló de cómo podían utilizarse símbolos distintos en los gráficos de R. También hablé yo de funcionarios y renta per cápita.

Ahora combino ambas entradas y algo más de mi cosecha para mostrar un gráfico hecho con R utilizando símbolos arbitrarios (las banderas de cada país).

El secreto de cómo lo he hecho (y el código completo, claro) lo revelaré la semana que viene. Entre tanto, ¿a alguno de mis lectores se le ocurre cómo pudo haberse hecho?

Para que copien, peguen y disfruten: addenda

R

Ayer dejé publicadas unas cuantas líneas de R y la promesa de contar de qué iba la cosa. Adelantando acontecimientos, he recibido comentarios públicos y privados al respecto que en esta entrada trataré de contestar.

El código era, una vez mínimamente desofuscado (no quería dar demasiadas pistas):

vertice.x <- c(0,1,2)                            # 1
vertice.y <- c(0,1,0)                            # 2
muestra <- sample( 1:3, 100000, replace = T )    # 3
iter <- function( ini, v ){                      # 4
   out <- rep( ini, length(v) )                  # 5
   for( i in 2:length(v) )
      out[i] <- ( out[i-1] + v[i] ) / 2          # 6
   out
}
plot( iter( runif(1), v.x[ muestra ] ),
      iter( runif(1),  v.y[ muestra ] ), pch = "." )

He aquí lo que hace:

Los mayas y la crisis

Tengo que pedir excusas a mis lectores por el título de la entrada: reconozco que tiene un sí es no es de desesperado intento por captar tráfico a costa de los amigos de lo escatológico, tal vez interesados en averiguar qué nos sucederá a todos en el 2012.

En realidad, el vínculo que establezco entre los mayas y la crisis actual tiene que ver con una relativamente reciente (re)visita mía a uno de esos museos en los que uno, a veces, ríe y, otras, llora como por dentro. En él me topé con una versión facsímil (¿por qué en los museos siempre debería haber originales?) de lo siguiente: