viernes, 26 de enero de 2018

20.1. Mapas con barras 3-D. Copas Américas ganadas

Dibujar columnas 3-D en un mapa con perspectiva que indiquen la cantidad de Copas Américas ganadas y de participaciones por país.


Introducción:
En ocasiones es útil mostrar la distribución geográfica de un dato con barras 3-D centrado donde los colores y altura corresponde a la cantidad de Copas Américas ganadas por cada país.
Este ejemplo es una adaptación del ejemplo 10 de la galería histórica de GMT adaptado para su utilización en Windows sin awk.

Script

Datos:



0. Mapa Base: Los siguientes comandos crean el mapa base visto en perspectiva con áreas húmedas y secas pintadas, límite de países y marco del mapa (ver 12.1):

gmt pscoast -R -J -O -K -JZ -p >> %OUT% -Df -G200 
gmt pscoast -R -J -O -K -JZ -p >> %OUT% -Sdodgerblue2 -C200 -Df
gmt pscoast -R -J -O -K -JZ -p >> %OUT% -Df -N1 
gmt psbasemap -R -J -JZ -O -K -p >> %OUT% -BWSneZ -Ba



1. Título y eje Z: con psbasemap -B se agrega un título y el eje Z (con anotaciones, intervalos y leyenda). El rango y la tamaño del eje Z se definen en las variables REGION3D (0 a 15) y PROZ (5 cm).

SET    REGION3D=%REGION%/0/15 
SET    PROZ=5c

gmt psbasemap -R -J -JZ -O -K -p >> %OUT% -B+t"Copas Am\351ricas Ganadas"
gmt psbasemap -R -J -JZ -O -K -p >> %OUT% -BWSneZ+b  -Bzafg+l"Cantidad"


2. Columnas de la Copas Américas ganadas:  psxyz permite dibujar los datos con los siguientes argumentos:
  • -So0.5c: dibuja columnas en 3-D con una base cuadrada de 0,5 cm de lado.
  • -G: color de la columna.
  • -W: propiedades de las líneas.
  • -i0,1,2: columnas con los datos de entrada (longitud, latitud, cantidad de campeonatos).
gmt psxyz -R -J -JZ -O -K -p >> %OUT% "CopaAmerica.csv" -So0.5c -Wthinner -Gblue  -i0,1,2



3. Agregar valores: Para escribir la cantidad de campeonatos en la base de las columnas, primero se utiliza gmtconvert para extraer los datos de las columnas 0, 1 y 2 (del archivo CopaAmerica.csv). Estos se pasan a pstext (mediante el símbolo pleca) con los siguientes argumentos:
  • -Gwhite@30: fondo blanco con 30% de transparencia.
  • -D0/-0.8c: Desplaza el texto 8 mm hacia abajo (con respecto a la posición geográfica definidas por las columnas 0 y 1).
  • -F: Fuente del texto (tamaño, tipo y borde de letra, justificación).
gmt convert "CopaAmerica.csv" -o0,1,2 | gmt pstext -R%REGION% -J -O -K -p -Gwhite@30 -D0/-0.8c -F+f20p,Helvetica-Bold,firebrick=thinner+jCM >> %OUT%


A continuación vamos a colorear las columnas según la cantidad de copas ganadas (punto 4) y las participaciones (punto 5).

4. Rango valores: gmtinfo permite conocer el rango de valores de la 3a y 4a columna (2 y 3).

gmtinfo "CopaAmerica.csv" -T1+c2
gmtinfo "CopaAmerica.csv" -T1+c3




4A.  Paleta de Colores: Creamos una paleta de colores (CPT) con el rango de valores (ver punto anterior). Se guarda como %color%. Se usa una CPT discreta (sin -Z) dado que se representan valores enteros.
  • -T: rango de valores.
  • -C: CPT maestra.
NOTA: Para este caso particular, con datos enteros, hay que sumar 1 al máximo valor informado por gmtinfo.

gmt makecpt -Crainbow -T0/16/1 > %color%

4B. Colorear columna: nuevamente psxyz permite dibujar las columnas. Se debe utilizar el argumento -C en lugar de -G, e indicar la 3a columna con los valores que se utilizan para colorear (en este caso se repite la columna 2).
  • -C%color%: utiliza la CPT definida en el punto anterior.
  • -i0,1,2,2: define las columnas con los datos del archivo de entrada.
gmt psxyz -R -J -JZ -O -K -p >> %OUT% "CopaAmerica.csv" -So0.5c -C%color% -Wthinner -i0,1,2,2




5. Escala colorespsscale dibuja la escala de colores.
  • -D: posición y dimensiones de la escala.
  • -B: anotaciones y leyenda del eje.
  • -L0.1: Dibuja rectángulos de igual tamaño y la separación (en cm) entre ellos.
gmt psscale -R -J -JZ -O -K -p -C%color% >> %OUT% -DJRM+o0.3c/0+w13/0.618c -L0.1 -B+l"Cantidad"


6. Datos 3: para que los colores represente la cantidad de participaciones hay que modificar el intervalo de makecpt (-T17/44/1), e indicar la 4a columna del archivo (-i0,1,2,3) en psxyz y el nombre de la escala de colores.

gmt makecpt -Crainbow -T17/44/1 > %color%
gmt psxyz -R -J -JZ -O -K -p >> %OUT% "CopaAmerica.csv" -So0.5c -Wthinner -C%color% -i0,1,2,3
gmt psscale -R -J -JZ -O -K -p -C%color% >> %OUT% -DJRM+o0.3c/0+w13/0.618c -L0.1 -B+l"Participaciones"


No hay comentarios.:

Publicar un comentario