He buscado por todas partes una forma de colorear partes de un mapa basado en un archivo csv o xml. Por ejemplo, para ilustrar los resultados de una elección. Hacerlo a mano es tedioso
Me imagino poder adjuntar una ruta a una variable y poder cambiar la imagen de fondo o la muestra en función de un valor numérico.
¿Alguien tiene una idea sobre cómo abordar esto?
Hacer esto es bastante simple. Todo lo que necesitas es:
Luego, todo lo que hace es un bucle sobre cada columna, aunque es posible que desee 2 bucles si desea normalizar los rangos de datos. Aquí está el resultado final de un tutorial que preparé para estudiantes de mi universidad:
#target illustrator
(function () { // protect namespace
var doc = app.activeDocument;
var input = read_data_CSV();
var data = input[0];
var max = input[1];
var min = input[2];
for ( i = 0; i < data.length; i++ ) {
var name = data[i][0];
var value = (data[i][1] - min)/(max-min)*100;
try{
var pathitem = doc.pageItems.getByName(name);
var col = new CMYKColor();
col.black = 0;
col.cyan = 100 - value;
col.magenta = value;
col.yellow = 0;
pathitem.fillColor = col;
if (pathitem.typename === "CompoundPathItem")
pathitem.pathItems[0].fillColor = col;
} catch(err) {
alert(name+ " errors!");
}
}
/**
* Prompt user for a CSV file, two columns
* name and value. The CSV file is assumed
* to be in form:
*
* name;10.5
*
* Where the column separator is ";" and
* the decimal separator is ".".
*
* @returns {array} containing the data, max
* and min.
*/
function read_data_CSV(){
var file = File.openDialog('data', 'center:*.csv');
file.open( 'r' );
var max = Number.MIN_VALUE;
var min = Number.MAX_VALUE;
var data = [];
while( !file.eof ) {
var input = file.readln().split( ';' );
var numeric = parseFloat(input[1]);
if (numeric > max) max = numeric;
if (numeric < min) min = numeric;
data.push([input[0], numeric]);
}
return [data, max, min];
}
})(); //run on load
Imagen 1 : Ejemplo de mapa mapeado con valores del archivo csv
Para probar esto en algunos datos de mapas reales, he preparado los siguientes archivos:
Asegúrese de tener activo el archivo a modificar. Este es un ejemplo, solo que necesitaría ser mucho más robusto para compartirlo como otra cosa.
Desde una perspectiva puramente de nivel de esfuerzo, considere probar Tableau. Estoy bastante seguro de que puede aprenderlo más rápido de lo que se puede escribir un guión. También puede exportar sus gráficos/mapas a PDF para realizar ajustes en Illustrator.
Incluso la versión pública gratuita proporciona una funcionalidad de mapeo bastante robusta. Siempre que su conjunto de datos tenga un nombre significativo, puede reconocer territorios geográficos bastante bien desde el primer momento.
Aquí hay un tutorial para darle una idea de lo que es posible: https://www.interworks.com/blog/ccapitula/2015/02/25/tableau-essentials-formatting-tips-maps
NB: Todos los gráficos/mapas de Tableau Public son públicos de forma predeterminada. Además, yo no creé ese tutorial.
Es posible que pueda usar un script personalizado hecho por usted mismo junto con algunos datos de la hoja de cálculo para hacer esto. Puede escribir usted mismo, o uno vendrá como respuesta en este hilo , o puede pedirle a la gente en el foro de secuencias de comandos de Adobe Illustrator que escriba uno para usted.
Al crear el script personalizado, su objetivo básico será adjuntar los datos a la forma de arte por medio de alguna 'clave', como el nombre de la ruta en el panel de capas, o usando las notas de atributos o incluso usando la función de variables y adjuntando un variable diferente para cada camino. En la hoja de cálculo, deberá incluir esta clave de referencia en una columna y los datos de color correspondientes, como el nombre de una muestra o los valores de color, en otra columna. Su secuencia de comandos personalizada deberá analizar los datos CSV y colorear las rutas.
Si puede proporcionar un enlace a sus archivos o usar capturas de pantalla para explicar la estructura de su hoja de cálculo y documento, sería el siguiente paso.
No estoy familiarizado con las habilidades de secuencias de comandos / variables de Illustrator, pero recientemente aprendí sobre la capacidad de crear gráficos simples en Illustrator. Puede ser más sencillo crear el mapa y colorear los valores manualmente. ¿Tedioso? Sí. Pero obtiene los resultados que desea.
Otras alternativas: Tableau como se sugiere, o las nuevas funciones en Excel usando la herramienta Mapa de la tienda de Excel harán el trabajo rápidamente.
Acabo de comenzar un trabajo con Cognos 10 y estaré trabajando en mapas en las próximas semanas, por lo que si tiene Cognos Report Studio, podría seguir esa ruta.
joojaa
Tonto-V
joojaa
Tonto-V
joojaa
jakob tuemoes
joojaa