Иллюстратор и Джаваскрипт
Любой человек с мозгом программиста противится рутинной работе. Он понимает в душе, что делает то, что должна делать машина. Достаточно ведь написать код один раз и завернуть в цикл.
Я обожаю придумывать дизайн графиков, диаграмм и таблиц, но все автоматические инструменты строят уродство, а не графики.
Иногда нужно табличные данные вставить и покрасить каждое значение оттенком, зависящим от этого значения. Иногда нужно во всей таблице взять и во всех значения после запятой оставить ровно два знака, набрав их шрифтом чуть меньше. Иногда нужно классы чисел разделить полупробелами. Иногда придуманный удачный формат для каких-то данных хочется опробовать для других данных (например, таблицеграфик каких-то спортивных результатов перестроить для другого матча или заплыва).
Всё это довольно муторная работа, которую хочется автоматизировать.
Так вот, кто-нибудь знает, как это сделать лучше всего? Кажется, адобовские программы как-то поддерживают Джаваскрипт. Как этим воспользоваться? Где задокументированна их объектная модель? Есть ли там консольный режим? Типа, пишешь команду — она сразу же выполняется по энтеру.
Хочется строить график в Иллюстраторе так:
if (line = document.layerNamed ('rus medals')) line.clear ()
else line = document.layers.add ('rus medals')
line.select ()
document.pen (0, 0)
for (i = 0; i <= 16; ++ i) {
document.pen (i * 10, -medalsByCountryAndDate ('RUS', i + 12))
}
Ну или что-то вроде того. То есть пишем, что хотим от машины, а не делаем это руками. Я чувствую, как вам хочется придраться к этому коду или придумать свой, но это никому не интересная хрень. Смысл в другом: захотели построить график Новергии — бац, построили. Решили, что 10 пикселей плохое расстояние — исправили на 12, перестроили. Захотели поставить восклицательный знак на графике каждый раз, когда его поднимает золотая медаль — дописали строчку. Захотели воткнуть грустный норвежский флаг везде, где проиграли золото Бьёрндалену — дописали ещё пару строчек.
Кто так умеет, научите меня, а?
Вот как-то так: http://www.adobe.com/devnet/illustrator/scripting/ (не люблю тыкать в мануалы, но лучше не объясню).
Кстати, куда делась галочка «видно только автору блога»?
О, круто, оно работает. Спасибо!
Я тоже в поиске. Когда нужно обработать большой набор данных хитрым способом, то я механическую часть делаю в HTML, потом скриншот вставляю куда нужно и добавляю подписи, либо, если HTML не тянет объем данных — карта из 100 000 кликов, механическую часть делаю в Cairo, он очень быстрый и может генерить как векторные, так и растровые изображения. Потом это я могу вставить куда угодно, наложить эффекты.
Некоторые, говорят, с успехом пользуются Processing, он поддерживает экспорт в вектор. И чудеса в нем действительно творят неземной красоты: http://www.generative-gestaltung.de/
Как выглядит такой JS, ты можешь посмотреть у меня в «Бутылках пива» :)
В Excel 2007 есть неплохое условное форматирование.
Да-да, я вот тоже этим давно интересуюсь. Расскажешь, когда добьёшься чего-то в этом?
Не совсем уловил смысл этой фразы. Каким образом первая часть предложения согласуется со второй? Это примерно тоже самое, что «я люблю ходить, но на улице дождь». Кроме того, в слове «стоят» буква «р» пропущена.
Согласен, фраза кривовата.
Рисуй в SVG.
Чем actionscript плох?
Это же что-то про Флеш вроде?
Флеш, да. Но, наверное, неуместное предложение. Не уверен, что во флеше можно быстро рисовать хорошую инфографику.
Есть чудесный язык — Пайтон. И пара простеньких програмок:
http://nodebox.net/code/index.php/Home
http://drawbot.com/
Там есть необходимые мануалы и примеры. Полученные картинки можно сохранить в векторном формате и открыть Иллюстратором.
Есть вот такая штука еще:
http://scriptographer.org/
Это джаваскриптовый фреймворк для иллюстратора (насколько я понимаю), там люди свои инструменты пишут.
Для подобных штук использую питон, сохраняющий в svg.
Есть подозрение, что Adobe довольно сильно задвигает Illustrator (графики там до сих пор черно-белые по умолчанию, например).
Синтаксис AdobeScript нужно искать на сайте самой Adobe, и он там был, когда я копал скрипты для Photoshop.
Может не совсем то, но есть Google Chart API (http://code.google.com/intl/ru/apis/chart/image_charts.html).
Генерить можно и джаваскриптом (http://dnv.net23.net/mstest.html).
Есть у них и более крутая штука, Visualization API (http://code.google.com/intl/ru/apis/visualization/interactive_charts.html), она так вообще полностью на джаваскрипте.