lunes, 10 de diciembre de 2018

20.2. Bloque 3-D Columnas Apiladas

Dibujar columnas 3-D en un mapa con perspectiva que indiquen la cantidad de 1º, 2º, 3º y 4º puesto de Copas Américas ganadas por país.


En el ejemplo anterior (20.1) se muestra como dibujar columnas 3-D. Se explica como dibujar columnas apiladas en un mapa con perspectiva. Se dibujar 4 columnas correspondientes a la cantidad 1º, 2º, 3º y 4º puesto de las Copa América.
0. Datos: Archivo csv conformado por 9 columnas: longitud, latitud, 1º puesto, 2º puesto, 3º puesto, 4º puesto, 1º + 2º, 1º + 2 + 3, 1 +2 Copas Américas ganadas, participaciones y país. La longitud y latitud corresponden al centroide de cada país (Centroids_Countrys.txt, link original) y definen la posición donde se dibujarán las columnas. La suma de posiciones (columnas 6, 7 y 8) se utilizan como base para apilar las columnas.


Link: CopaAmerica.csv


REM    Nombre archivo de entrada
SET    INPUT="CopaAmerica.csv"



1. Mapa Base: mapa en perspectiva con áreas húmedas y secas pintadas, límites de los países, título de la figura y eje vertical.

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 -JZ -O -K -p -Df >> %OUT% -N1
gmt psbasemap -R -J -JZ -O -K -p >> %OUT% -BWSneZ -Ba
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 apiladas: con psxyz se dibujan las columnas centradas en las coordenadas (columnas 0 y 1) que se extiende desde una base hasta una altura (valores 3 y 4) con los parámetros:
  • -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,6,2: columnas con los datos de entrada (longitud, latitud, valor base, valor altura).
a. 1º puesto: Columnas 0, 1, 2. En este caso, al omitirse el valor de la base se asume que corresponde a 0.

gmt psxyz -R -J -JZ -O -K -p >> %OUT% %INPUT% -So0.5c  -Gblue   -Wthinner -i0,1,2


b.  2º Puesto: Columnas 0, 1, 6 (1º + 2º puestos) y 2 (1º puestos).

gmt psxyz -R -J -JZ -O -K -p >> %OUT% %INPUT% -So0.5cb -Ggreen  -Wthinner -i0,1,6,2

  

c.  3º puesto: Columnas 0, 1, 7 (1º + 2º + 3º puestos) y 6 (1º + 2º puestos).

gmt psxyz -R -J -JZ -O -K -p >> %OUT% %INPUT% -So0.5cb -Gyellow -Wthinner -i0,1,6,7


d. 4º puesto: Columnas 0, 1, 8 (1º + 2º + 3º + 4º puestos) y 7 (1º + 2º + 3º puestos) .

gmt psxyz -R -J -JZ -O -K -p >> %OUT% %INPUT% -So0.5cb -Gred    -Wthinner -i0,1,8,7

3. Agregar valores: Para escribir en la base la suma de los 4 primeros puestos de campeonatos en la base de las columnas, primero se utiliza gmtconvert para extraer los datos de las columnas 0, 1 y 8. 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 %INPUT% -o0,1,8 | gmt pstext -R%REGION% -J -O -K -p -Gwhite@30 -D0/-0.8c -F+f20p,Helvetica-Bold,firebrick=thinner+jCM >> %OUT% 


4. Leyenda: Con echo primero se crea el archivo auxiliar que luego se dibuja con pslegend.

echo H 10 Times-Roman Copas Am\351ricas > "temp_leyenda"
echo N 1 >> "temp_leyenda"
echo S 0.25c r 0.5c blue   0.25p 0.75c 1 Puesto     >> "temp_leyenda"
echo S 0.25c r 0.5c green  0.25p 0.75c 2 Puesto     >> "temp_leyenda"

echo S 0.25c r 0.5c yellow 0.25p 0.75c 3 Puesto     >> "temp_leyenda"
echo S 0.25c r 0.5c red    0.25p 0.75c 4 Puesto     >> "temp_leyenda"

gmt pslegend -R -J -JZ -O -K -p >> %OUT% "temp_leyenda" -DjLB+o0.2i+w1.35i/0+jBL -F+glightgrey+pthinner+s-4p/-6p/grey20@40



No hay comentarios.:

Publicar un comentario