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

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.

La magia la proporciona la función grid.symbols dentro del siguiente pedazo de código (que utiliza la función xyplot del paquete lattice):

xyplot( ppa ~ func_pct,
    groups = pais, data = dat,
    xlab = "% funcionarios", ylab = "renta per cápita",
    main = "Funcionarios y renta per cápita",
    panel = function( x, y, subscripts, groups, col ){
        panel.fill( col = "gray")
        for( i in 1:length( groups[subscripts] ) ){
            symbol <- get(as.character(groups[subscripts][i]))
            grid.symbols(symbol,
                x[i], y[i],
                units = "native",
                size = unit(5, "mm"))
        }
    }
)

Algún día, prometo, aprenderé a formatear el código en Wordpress para que no se parezca al que escribía la preclara conchi77 (los que no sepan quién es y no puedan refrenar su curiosidad, que me pregunten en privado: no quiero demandas).