Mapas basados ​​en datos de Illustrator

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 no es realmente difícil pero un poco incómodamente cerca del desarrollo. La cosa es que un mapa de colores es muy diferente de un gráfico circular y que a su vez es diferente de una línea de tiempo en espiral y eso... Entonces podemos responder fácilmente a un caso específico pero no a todos. Hacer esto no es más que un trabajo de 20 minutos.
"No más de 20 minutos de trabajo" - son mis famosas últimas palabras :)
@ Silly-V sí, pero en este caso es cierto. Lo cronometré, solo estoy tratando de descubrir cómo desacoplar mis cosas de propiedad, que no me siento cómodo compartiendo, del bucle.
Entonces, ¿te envió los materiales y estás trabajando en ello? No podría decir un tiempo estimado hasta que vea con qué puedo trabajar. Tengo curiosidad por saber cómo se hizo este mapa.
@ Silly-V Puedo hacer un script que sea independiente del archivo. No es tan difícil buscar un nombre y formar parejas.
Lo siento @silly-V. Nunca llegué a enviar archivos con fines de demostración. Tuve una semana ocupada. Los archivos en cuestión se pueden descargar aquí: drive.google.com/drive/folders/… Tengo otro hilo abierto en Illustrator Forum: forums.adobe.com/thread/2226853
@JakobThuemoes Perdón por la respuesta tardía, pero realmente no tuve tiempo de revisar esto hasta este año.

Respuestas (4)

Hacer esto es bastante simple. Todo lo que necesitas es:

  • Un archivo de datos en formato CSV con nombres y valores.
  • Cada forma de región que se rellenará anotada por el nombre.

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

Mapa

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:

  • map.ai , un mapa que contiene el mapa de los municipios del sur de Finlandia. El mapa se basa en "NLS Yleiskarttarasteri 1:1 000 000, 1.4.2013". Puede compartir o mezclar estos datos siempre que atribuya la fuente y la versión de la lista de donde se tomó.
  • Population_31_12_2016_logarithmic.csv , que contiene los datos de población de la región el 31 de diciembre de 2016.
  • percent_of_unemployment_2015.csv , que contiene datos de desempleo en el año 2015.

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 sé si me gusta esta respuesta, ya que se basa demasiado en enlaces externos sin decir por qué me gustaría usar el enlace y qué hay detrás del enlace, solo algunas referencias vagas que podrían ayudar o no. Todavía estoy pensando si esto necesita ser rechazado o no. Quiero decir que pareces decir que preguntes en otro lugar.
Tal vez pueda volver a redactar esta respuesta para indicar claramente qué párrafo va con cuál y qué hay precisamente detrás de los enlaces. Sin embargo, como la pregunta es "cómo abordar esto", creo que esto responde cómo abordarlo, y preguntar "en otro lugar" puede ser una respuesta legítima, ya que literalmente no dice preguntar en ningún otro lugar sino que apunta a un lugar específico.
Bueno, no, OP preguntó aquí, resolvámoslo aquí si es posible.
¿No diría que implicaría al menos algunas secuencias de comandos personalizadas? Y si es así, apenas hay suficiente información sobre cuáles son los detalles con respecto al documento de trabajo, lo que a su vez plantea la cuestión de esos detalles, ya que deben elaborarse, simplemente tenemos poco con qué trabajar aquí.
@silly Estaré encantado de enviar más detalles. Con respecto a la cantidad de personas que pueden necesitar una solución de este tipo, me sorprende que no haya tutoriales o hilos por ahí. Debe haber miles de diseñadores gráficos que actualizan minuciosamente mapas y gráficos para periódicos y revistas escribiendo manualmente y coloreando mapas. Pero este método es muy propenso a errores y requiere mucho tiempo. Con Google Fusion y otras herramientas web disponibles, uno pensaría que llevaría al antiguo mundo gráfico a seguir su ejemplo con nuevas herramientas.
@JakobThuemoes probablemente sea cierto, pero no hay una interfaz en Illustrator para hacer esto. Scripting parece no estar en la parte superior de la lista de cosas que hacen los diseñadores. El problema es que la visualización de datos no es una tarea, hay cientos de tareas diferentes dentro de la visualización de datos, por lo que las personas que confían en la visualización para su trabajo usan herramientas como Mathematica. Vea estos ejemplos .

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.