Визуализация доходов депутатов Государственной Думы пятого созыва (за 2010).

После прочтения этого топика на хабре, http://habrahabr.ru/blogs/e_gov/133799/, я решил сделать визуализацию доходов депутатов. Для этого пришлось выкачать данные с сайта Государственной Думы http://www.duma.gov.ru/. Первым вариантом визуализации скачанных данных стала столбиковая диаграмма. Правда, 450 столбиков и большой разброс в доходах (от 1 млн. до почти 2 млрд.) сделали картинку невразумительной. После нескольких промежуточных вариантов остановился на  treemap. В книге  Ben Fry «Data Visualisation» этому виду визуализации информации посвящена глава 7. Библиотека с реализацией алгоритмов treemap для работы с Процессингом можно скачать с сайта Бена Фрая  http://benfry.com/writing/treemap/. Взяв за основу пример из книги получил первую картинку:

Следующим шагом стало объединение депутатов по партиям и добавление пояснительных надписей:


Ссылка на большую картинку:

Напоследок картинка, показывающая, каким бы было распределение, если бы все депутаты заработали за год одинаковую сумму денег:

Визуализация списка компаний из FORTUNE 500

Бен Фрай визуализировал списки крупнейших американских компаний за 55 лет. Можно увидеть, как изменялся статус, прибыль и доход компании с 1955 по 2010 год.  Бен Фрай пишет, что основной задачей было показать, как 84000 точек можно легко уместить в интерактивное приложение. Визуализация данных мне понравилась. Единственное «но»: найти определенную компанию не просто. Чтобы найти «яблочную» компанию, мне пришлось посмотреть, какой у нее был доход в 2010 году на сайте CNNMoney.

Fortune 500 Apple profit

Ben Fry visualisation of fortune 500

Новые книги

Время идет — выходят новые книги по процессингу:
1. Generative Art Автор: Matt Pearson. Есть как азы программирования для новичков, так и подробные примеры интересные более продвинутым пользователям Процессинга. Amazon

2. Visualize This: The FlowingData Guide to Design, Visualization, and Statistics. Автор:Nathan Yau. Натан ведет очень интересный блог посвященный визуализации данных — http://flowingdata.com. Сама книжка не про Процессинг, но посвящена той же теме что и книга Бена Фрая «Data Visualisation». Автор в основном использует связку R и Adobe Illustrator. Несколько глав посвящены Action Script. Amazon

3. Processing for Visual Artists: How to Create Expressive Images and Interactive Art. Автор: Andrew Glassner. Книга не новая (вышла год назад), но я про нее еще не писал. Amazon

Вышла обновленная версия Processing 1.5.1

За последние несколько месяцев вышло несколько обновлений Процессинга. В новой версии появились режимы работы (modes) и исправлено множество багов. Режимы позволяют переключаться между разработкой программ под Android и классическим вариантом программирования для веба или десктопа. В будущем обещают и другие режимы. Все исправления можно посмотреть в файле revisions.txt.

«Осторожно, графики!»

Увидел на Flowing Data обалденный ролик — When charts attack.


Ссылка на видео
Особенно бегун понравился.

JavaOne

Побывал на конференции JavaOne которая проходила 12-13 апреля в Москве в здании академии наук на Ленинском проспекте, кстати мне очень нравится народное название этого строения — «Золотые мозги». Конференция мне очень понравилась — спасибо организаторам. На конференции много говорилось про будущее Java, 7 — 8 версии, новые фишки которые появятся в будущем и т. д. Для меня, самым интересным докладом был доклад Артема Ананьева о JavaFX, а точнее о грядущем релизе JavaFX 2.0. Нашел ссылку на презентацию по которой Артем делал доклад http://www.javaone.ru/data/track2/javafx-2.0-spb-session.pdf. В мая обещают общедоступну бету JavaFX 2.0 — обязательно попробую с ней поработать. Удивительно, что все с кем я говорил, ничего не слышали про Processing.

Processing.js 1.0!

Processing.js  добрался до версии 1.0!!!

Это родственный самому Процессингу проект, который позволяет запускать программы процессинга прямо в браузере, не используя плагины. Processing.js написан на JavaScript, и использует элемент HTML5  <canvas>.

JavaScript знать не нужно, достаточно включить Processing.js в html и указать файл с исходным кодом процессинга:

  1. <script src=»processing-1.0.0.min.js»></script>
  2. <canvas data-processing-sources=»hello-web.pde»></canvas>

Processing.js сделает все остальное.

Скачать можно здесь http://processingjs.org/.

Пример работы — http://mariuswatz.com/works/abstract01js/index_auto.html

Книги про Processing

Решил собрать все книги о Processing в одном посте.

1. Processing : a programming handbook for visual designers and artists. Авторы: Casey Reas и Ben Fry — создатели самого Processing’a. Наиболее полное руководство по языку Processing, содержит также интервью с авторами проектов сделанных в Processing’е.

2. Visualizing Data. Автор Ben Fry. Я про нее уже писал.

3. Learning Processing. A Beginner’s Guide to Programming Images, Animation, and Interaction. Автор Daniel Shiffman 2008 год. Самая простая книга — только ближе к концу книги автор начинает рассказывать о классах и ООП. Идеально для тех, кто до этого не программировал.

4. Processing: Creative Coding and Computational Art.  2007 год. Автор — Ira Greenberg (не удивляйтесь, Ira — мужчина). Большая книжка, целых 810 страниц, полностью о Processing’е.

5. Algorithms for Visual Design Using the Processing Language. Автор: Kostas Terzidis. 2009 год. Автор начинает от самых азов программирования (переменные, цикл) и доходит до таких алгоритмов как построение фракталов, диаграмм Вороного и др. В конце глав дается задание для самостоятельного выполнения. Одна глава посвящена Arduino.

6. Generative Gestaltung. Авторы Hartmut Bohnacker, Benedikt Grob, Julia Laub, Claudius Lazzeroni. Год издания 2009. Книга на немецком языке, но скоро обещают английскую версию. Про их сайт я недавно писал http://artprocessing.ru/generative-gestaltung.

7. Programming Interactivity. A Designer’s Guide to Processing, Arduino, and openFrameworks. Автор Joshua Noble. 2009 год. Большая книга, посвященная различному интерактиву, взаимодействию компьютера с реальностью. Книга разделена на три части. Первая — это введение в программирование, Processing, Arduino и openFrameworks. Вторая часть посвящена обработке звука, изображений, работе с различными датчиками и сенсорами, протоколам Bluetooth, MIDI и др. В третьей части рассказывается про 3D, OpenGL, Computer Vision, GPS.

 

Более подробно про эти книги можно прочитать здесь — http://processing.org/learning/books/.

Программирование визитки

визитка

После нескольких дней ковыряния в чужом и своем коде я наконец-то сделал в «Процессинге» свою визитку. Идея была такой: при приближении к буквам что-то, в данном случае сетка, становится гуще и создает эффект выворотки. Первой проблемой было получить координаты вершин букв. Поскольку сам Процессинг работает с растровыми образами шрифтов и не дает возможности получить координаты букв шрифта, я воспользовался для этого библиотекой geomerative. Далее была написана рекурсивная функция, разбивающая плоскость на ячейки в зависимости от расстояния до букв. Затем на основе этого разбиения была построена диаграмма Вороного. Для построения диаграмм Вороного существует библиотека  Mesh. Шрифт — ПТ Санс. Осталось только напечатать и посмотреть, что получилось. Финальный вариант стал таким:

Книга «Visualizing Data»

Книжка 2008 года написана одним из создателей Процессинга Беном Фраем (Ben Fry). Автор показывает, как использовать Процессинг для решения различных задач визуализации данных. Бен Фрай пишет интересно, книга по объему небольшая, поможет разобраться как в Процессинге, так и в проблемах визуализации больших объемов данных. Отсюда:  http://benfry.com/writing/archives/3 можно скачать примеры, рассматриваемые в книге.