Я искал способ раскрасить части карты на основе файла csv или xml. Например, для иллюстрации результатов выборов. Делать это вручную утомительно
Я представляю, как можно прикрепить путь к переменной и изменить фоновое изображение или образец на основе числового значения.
У кого-нибудь есть идея о том, как подойти к этому?
Сделать это довольно просто. Все что тебе нужно это:
Затем все, что вы делаете, это цикл по каждому столбцу, хотя вам может понадобиться 2 цикла, если вы хотите нормализовать диапазоны данных. Вот окончательный результат урока, который я подготовил для студентов своего университета:
#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
Изображение 1. Пример карты, сопоставленной со значениями из CSV-файла.
Чтобы проверить это на реальных картографических данных, я подготовил следующие файлы:
Убедитесь, что файл для изменения активен. Это пример, только мне нужно быть намного более надежным, чтобы поделиться им как чем-то другим.
С точки зрения уровня усилий попробуйте Tableau. Я почти уверен, что вы справитесь с этим быстрее, чем будет написан сценарий. Вы также можете экспортировать свои диаграммы/карты в PDF для точной настройки в Illustrator.
Даже бесплатная общедоступная версия предоставляет довольно надежные функции картографирования. Пока ваш набор данных имеет какое-то значимое имя, он может довольно хорошо распознавать географические территории из коробки.
Вот учебник, который даст вам представление о том, что возможно: https://www.interworks.com/blog/ccapitula/2015/02/25/tableau-essentials-formatting-tips-maps .
NB: все диаграммы/карты Tableau Public по умолчанию общедоступны. Кроме того, я не создавал этот учебник.
Для этого вы можете использовать самодельный пользовательский сценарий в сочетании с некоторыми данными электронной таблицы. Либо вы можете написать сами, либо ответ придет в этой ветке , либо вы можете попросить людей на форуме Adobe Illustrator Scripting написать его для вас.
При создании пользовательского скрипта вашей основной целью будет прикрепление данных к художественной форме с помощью некоторого «ключа», такого как имя пути на панели слоев, или с помощью примечаний к атрибутам, или даже с использованием функции переменных и прикрепления различные переменные для каждого пути. В электронной таблице вам нужно будет включить этот справочный ключ в один столбец и соответствующие данные о цвете, такие как имя образца или значения цвета, в другой столбец. Ваш пользовательский скрипт должен будет проанализировать данные CSV и раскрасить пути.
Если вы можете предоставить ссылку на свои файлы или использовать скриншоты для объяснения структуры вашей электронной таблицы и документа, это будет следующим шагом.
Я не знаком с возможностями сценариев/переменных в Illustrator, но недавно узнал о возможности создания простых диаграмм в Illustrator. Может быть проще создать карту и раскрасить значения вручную. Скучный? Да. Но это дает желаемые результаты.
Другие альтернативы: Tableau, как предложено, или новые функции в Excel с использованием инструмента «Карта» из магазина Excel быстро сделают эту работу.
Я только начал работать с Cognos 10 и буду работать над картами в ближайшие недели, так что если у вас есть Cognos Report Studio, вы можете пойти по этому пути.
джуджа
Глупый-V
джуджа
Глупый-V
джуджа
Якоб Тумоэс
джуджа