«Nathan Yau Искусство визуализации в бизнесе Как представить сложную информацию простыми образами Нейтан Яу Перевод с...»
-- [ Страница 1 ] --
The FlowingData Guide to Design,
Visualization, and Statistics
Искусство визуализации в бизнесе
Как представить сложную информацию простыми образами
Нейтан Яу
Перевод с английского Светланы Кировой
Издательство «Манн, Иванов и Фербер»
ББК 65.291.34
Издано с разрешения John Wiley & Sons International Rights Inc.
и агентства Александра Корженевского.
На русском языке публикуется впервые
Я88 Искусство визуализации в бизнесе. Как представить сложную информацию простыми образами / Нейтан Яу; пер. с англ. Светланы Кировой. - М. : Манн, Иванов и Фербер, 2013. - 352 с.
Визуализация в бизнесе - это умение представить данные в таком виде, который позволит их быстро анализировать, эффектно подавать, ну и конечно, применять в жизни. Прочитав эту книгу, вы научитесь собирать и форматировать информацию, создавать на ее основе диаграммы, графики и карты высокого качества.
Используя для целей визуализации Adobe Illustrator, интерактивную графику с HTML, CSS, JavaScript, Flash-графику, а также карты, созданные в R, Python и SVG, вы сможете креативно подавать свои данные и рассказывать с их помощью увлекательные истории.
Для тех, кто работает с большим количеством информации: руководителей проектов, аналитиков, консультантов, маркетологов.
УДК 65.012.2 ББК 65.291.34 Все права защищены. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой-либо форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, без письменного разрешения издателя.
Правовую поддержку издательства обеспечивает юридическая фирма «Вегас-Лекс»
© Nathan Yau, 2011 ISBN 978-5-91657-737-2 © Издание. Перевод. Оформление ООО «Манн, Иванов и Фербер», 2013 Оглавление Об авторе, о техническом редакторе, благодарности.................................. 7 Введение........................................................................ 9 1 Как рассказать историю с помощью данных................
–  –  –
О техническом редакторе Ким Рийс (Kim Rees) - сооснователь компании Periscopic, социально ответственной фирмы, занимающейся визуализацией информации. Сама Ким - личность знаменитая в кругу профессионалов в области визуализации. У нее семнадцатилетний опыт работы в интерактивных медиа. Она публиковалась в Journal of Information Mapping и в сборнике материалов InfoVIS 2010, а также выступала на множестве различных конференций и форумов, среди которых O’Reilly Strata Conference, WebVisions, AIGA Shift и Portland Data Visualization. Степень бакалавра в области компьютерных наук
она получила в Нью-Йоркском университете. О ее компании Periscopic писали и в CommArts Insights, и в «Историях успеха» на сайте Adobe, ее работы были удостоены наград VAST Challenge, CommArts Web Picks, а также премии Communication Arts Interactive Annual. Недавно проект компании Periscopic оказался выдвинут на Национальную премию дизайна Cooper-Hewitt.
Благодарности Эта книга не могла бы появиться без трудов ученых, занимающихся проблемами обработки данных и продолжающих создавать полезный открытый инструментарий для всеобщего пользования. Программные продукты этих разработчиков делают мою жизнь намного легче, и я уверен, что они продолжат нас удивлять - нет предела инновациям.
Хочу также выразить признательность читателям FlowingData, которые помогли мне установить контакт с таким огромным количеством людей, какого я себе даже представить не мог. Именно ради них главным образом я и сел за эту книгу.
Еще я хотел бы поблагодарить издательство Wiley Publishing, позволившее мне написать книгу так, как я хотел, а также Ким Рийс - за то, что помогла сделать эту работу достойной прочтения.
И в заключение я хочу сказать спасибо за поддержку моей жене и родителям, всегда поощрявшим меня в поисках того, что делает меня счастливым.
Моей любящей жене Бий Введение Нельзя сказать, что данные - это что-то новое. Люди занимаются количественными измерениями и составлением таблиц уже не одно столетие. Тем не менее в последние годы - с тех пор как я начал писать для FlowingData, моего сайта по дизайну, визуализации и статистике, - я наблюдаю настоящий бум в этой области, и конца-края ему не видно.
Совершенствование технологий сделало сбор и хранение данных задачей чрезвычайно простой, а сеть позволяет получать к ним доступ в любой момент, когда захочется. Это изобилие данных, окажись они в хороших руках, способно стать кладезем информации, помогающей принимать более дальновидные решения, излагать свои идеи более убедительно и создавать более объективное представление о том, как люди смотрят на мир и на самих себя.
Значительные сдвиги в публикации правительственных данных произошли в середине 2009 года, когда Соединенные Штаты запустили портал Data.gov. Он представляет собой всеобъемлющий каталог информации, предоставляемой федеральными министерствами и ведомствами, и демонстрирует прозрачность и подотчетность всех этих организаций и должностных лиц. Сайт задумывался для того, чтобы предоставить гражданам страны возможность ознакомиться с тем, на что власти тратят налоговые поступления. А ведь до этого правительство больше походило на черный ящик. Значительная часть данных на Data.gov и раньше лежала в открытом доступе - она находилась на сайтах ведомств, но те были разбросаны по всей Сети. Теперь же все сведения собраны в одном месте и отформатированы так, что их анализ и визуализация стали намного проще. И у Организации Объединенных Наций есть подобный портал - UNdata. Прошло совсем немного времени, и этому примеру последовало Соединенное Королевство, организовав свой Data.gov.uk. Крупные города мира, такие как Нью-Йорк, Сан-Франциско и Лондон, также являются поставщиками большого количества данных.
Открытию коллективной сети также во многом поспособствовало появление тысяч интерфейсов программирования приложений (application programming interfaces, API). Задача была - приободрить разработчиков и соблазнить их сделать что-то со всеми этими данными. Такие приложения, как Twitter и Flickr, имеют API с широким функционалом, что делает возможным создание пользовательского интерфейса, совершенно отличного от того, который можно видеть на самих сайтах. На ProgrammableWeb - ресурсе, занимающемся каталогизацией API, - их представлено более двух тысяч. Не так давно появились и новые приложения, такие как Infochimps и Factual, разработанные специально для предоставления структурированных данных.
Если вокруг собрано столько данных - в магазинах, на складах и в базах, - значит, ситуация созрела для появления людей, которые способны их осмыслить. Сами по себе данные не так уж интересны (по крайней мере, для большей части человечества). Интересна информация, которую можно извлечь из этих данных. Люди хотят знать, о чем говорят их данные, и если вы способны помочь им в этом, то будете весьма востребованы. Вот почему Хол Вариан (Hal Varian), главный экономист Google, говорит, что статистик - самая секси работа грядущего десятилетия, и отнюдь не потому, что статистики - такие красавчики. (Хотя если взглянуть на нас сквозь призму гиковского* шика, то мы очень даже ничего.) Визуализация Один из лучших способов исследовать крупную базу данных и попытаться разобраться в ней - это визуализация. Поместите числа в видимое пространство и предоставьте мозгу - своему или ваших читателей - выявить паттерны. В этом деле мы все мастера. Вы сможете разглядеть истории, которые, возможно, никогда бы не увидели, применяя лишь формальные статистические методы.
Джон Тьюки (John Tukey), мой любимый статистик и отец разведочного анализа данных, разбирался в статистических методах и свойствах, как мало кто другой, и верил, что графические методы также имеют законное право на существование. Он был глубоко убежден, что картинки способны открывать нам неожиданное. Вы можете очень многое узнать из данных, просто визуализируя их, а в ряде случаев это и есть все, что вам нужно сделать, чтобы принять информированное решение или рассказать историю.
Например, в 2009 году в Соединенных Штатах произошел значительный рост уровня безработицы. В 2007 году он составлял в среднем 4,6 процента, в 2008 году поднялся до 5,8 процента, а к сентябрю 2009 года дошел уже до 9,8 процента. Однако такие средние по стране величины способны поведать лишь часть истории. Это обобщенные данные по США в целом. Но, может, были какие-то регионы, в которых уровень безработицы оказался выше, чем в других местах? Может, были регионы, которые эта беда вообще обошла стороной?
Карты, представленные на рис. 0.1, рассказывают более полную версию этой истории, вам достаточно лишь взглянуть на них - и вы сможете ответить на вопросы из предыдущего абзаца.
Округа, окрашенные в более темный цвет, - это области, в которых уровень безработицы был сравнительно высоким, в то время как в округах, окрашенных светлым, ее уровень оказался относительно низким. В 2009 году вы уже видите множество регионов на западе, где уровень безработицы стал выше 10 процентов. Такая же ситуация сложилась и в большинстве регионов на востоке. А вот регионы Среднего Запада пострадали не так сильно (см. рис. 0.2).
–  –  –
Рис. 0.1. Карты, демонстрирующие уровень безработицы в США с 2004 по 2009 гг.
Рис. 0.2. Карта, демонстрирующая уровень безработицы в 2009 г.
12 ВВЕДЕНИЕ
–  –  –
то есть в таблице, разобраться в данных непросто, и все, что у вас получится извлечь из них, - это отдельные величины. А вот в графическом варианте вы легко можете заметить тенденции и паттерны и с одного взгляда провести сравнение.
Такие поставщики новостей, как New York Times и Washington Post, прекрасно справляются с задачей делать данные более доступными и наглядными.
Они, наверное, лучше многих других пользуются всей этой открытой информацией, каждый день рассказывая читателям все новые и новые истории.
Иногда графики с данными применяются для обогащения истории иной точкой зрения, а в других случаях графики, собственно, и излагают всю историю.
С развитием онлайн-медиа диаграммы и графики получили еще большее распространение. Сегодня в новостных компаниях существуют специальные службы, которые занимаются только интерактивами, или только диаграммами, или только картами. У New York Times, например, есть даже отдел новостей, созданный исключительно для работы с тем, что они называют «компьютеризированными репортажами».
Тамошние журналисты специализируются на новостях с цифрами. И отделу графики в New York Times не привыкать к работе с огромными массивами данных.
Визуализация пробилась также в попкультуру. Фирма Stamen Design, занимающаяся визуализацией и широко известная своими онлайн-интерактивами, в последние несколько лет готовила для ежегодной церемонии вручения премий Рис. 0.4. Графический вид данных из «Статистического ежегодника Соединенных MTV Video Music Awards трекеры твитов. Штатов»
14 ВВЕДЕНИЕ
–  –  –
черного, белого и красного равносильно выпуску коммунистической газеты или убийству панды. «Недозагрузка данных» (Data Underload) - серия юмористических постов, которые я публикую на FlowingData, - это моя собственная «проба пера» в данном жанре. Каждый день я веду наблюдения и выкладываю их в форме диаграмм. На рис. 0.5 таким образом проиллюстрированы цитаты из известных фильмов, вошедших в рейтинги Американского института киноискусства. Получилось нечто абсолютно нелепое, но забавное (по крайней мере, для меня).
Итак, что же такое визуализация? Ну, все зависит от того, с кем вы разговариваете.
Некоторые люди утверждают, что визуализация - это традиционные схемы и графики. Другие придерживаются более либеральных взглядов. Для них все, что способно иллюстрировать данные, и есть визуализация, и не имеет значения, что это: произведение data-арта или таблица в Microsoft Excel. Я лично больше склоняюсь к последним, хотя, бывает, иногда обнаруживаю себя среди членов первой группы. В конце концов, все это не так уж и важно. Просто делайте то, что подходит для ваших целей.
На каком бы определении визуализации вы ни остановились, когда вы станете создавать диаграммы для своей презентации, анализировать большой массив цифровой информации Другие публикаили готовить новостной репортаж, содержащий некие данные, вы в конечном счете будете ции из серии «Неискать правды. В какой-то момент ложь и статистика стали почти синонимами, но на самом дозагрузка данных»
деле лгут не числа. Лгут люди, использующие числа. Иногда они делают это намеренно, («Data Underload») реализуя какой-то план, но в большинстве случаев подобное происходит неумышленно. Когда можно найти на сайте FlowingData вы не знаете, как правильно составить диаграмму или как подать данные беспристрастно, есть по адресу: http:// большая вероятность, что у вас появится некая информационная свалка, дающая совершенно datafl.ws/underload искривленное представление о реальности. Однако если вы усвоите годные приемы визуализации и научитесь работать с данными, вы сможете уверенно излагать свои идеи и радоваться своим открытиям.
Как научиться работать с данными Я начал изучать статистику на первом курсе колледжа. Это был обязательный учебный предмет для получения никак не связанной со статистикой ученой степени по электротехнике. Я слышал много ужасных историй, но, в отличие от описываемых в этих байках преподавателей, мой профессор оказался большим энтузиастом своего дела и занимался им с явным удовольствием.
Читая свои лекции, он быстро передвигался вверх-вниз по ступеням зала и размашисто жестикулировал, задевая студентов, мимо которых проходил. До того дня, как мне кажется, у меня не было более вдохновленного учителя, и это, несомненно, повлияло на меня - я увлекся миром данных. В итоге четыре года спустя я закончил колледж специалистом в области статистики.
На протяжении всего моего обучения в бакалавриате статистика сводилась для меня к анализу данных, распределению и проверке гипотез, и мне это нравилось. Было забавно разглядывать 16 ВВЕДЕНИЕ
–  –  –
Если вы за всю жизнь не написали ни строчки кода, тогда R* - вычислительная среда, которой отдают предпочтение многие статистики, - может показаться вам пугающей. Но после того как вы изучите несколько примеров, вы быстро набьете руку. Данная книга поможет вам в этом.
Я говорю вам это, потому что именно так я и учился. Помню, как я впервые углубился в дизайнерские аспекты визуализации. Было это летом после второго курса магистратуры, когда я получил потрясающее известие: меня взяли на стажировку в должности редактора графики в New York Times. До того момента графика для меня всегда была лишь инструментом анализа (в том числе и столбцовые диаграммы для школьной ярмарки научных проектов), а эстетика и дизайн не имели особо большого значения - если они вообще имели для меня хоть какоенибудь значение. Мне и в голову не приходило, сколь велика роль данных в журналистике.
Чтобы подготовиться к стажировке, я прочитал все книги по дизайну, которые смог достать, и проштудировал руководство пользователя Adobe Illustrator, потому что знал: в New York Times работают именно с этой программой. Но только когда я действительно начал делать диаграммы и графики, я стал по-настоящему чему-то учиться. Обучаясь в процессе работы, вы окажетесь вынуждены очень быстро набираться знаний и навыков, необходимых в деле. И по мере того, " как вы будете работать со все большими массивами данных и создавать все больше диаграмм, ваши умения станут развиваться активнее.
Как читать эту книгу Эта книга построена на примерах и написана с целью дать вам знания, необходимые для создания различных объектов информационной графики от начала и до конца. Вы можете прочитать ее от корки до корки, а можете выхватить только нужные вам идеи, если у вас уже есть какие-то данные или если вы владеете какими-то способами визуализации. Главы организованы так, что примеры в них независимы и самодостаточны. Если вы новичок в этой области, первые главы будут вам особенно полезны. В них рассказывается о том, как подходить к имеющимся данным, что в них искать и какими инструментами пользоваться. Вы узнаете, где именно находить данные и как их форматировать и готовить для визуализации. Далее представлены приемы визуализации, структурированные по типу данных и по типу историй, которые с их помощью вы можете рассказать. Но помните: говорить всегда должны сами данные.
Какой бы подход к чтению этой книги вы ни выбрали, я горячо рекомендую вам читать ее, сидя за работающим компьютером, чтобы прорабатывать примеры шаг за шагом и просматривать все ресурсы, упомянутые в примечаниях и ссылках. Вы можете также скачать коды и файлы данных и опробовать работающие демоверсии на сайтах http://www.wiley.com/go/visualizethis и http://book.flowingdata.com.
Чтобы сделать сказанное выше предельно ясным, на рис. 0.6 я представляю вам схему, которая поможет понять, что именно вам необходимо. Развлекайтесь в свое удовольствие!
* R - язык программирования для статистической обработки данных и работы с графикой; свободная программная среда с открытым исходным кодом. Прим. пер.
18 ВВЕДЕНИЕ Рис. 0.6. С какого места следует начать читать эту книгу Как рассказать историю с помощью данных Подумайте обо всех популярных книгах по визуализации, которые существуют, - о тех, про которые вы постоянно слышите на лекциях или про которые читаете в блогах, а еще о тех, которые пришли вам на ум прямо сейчас, пока вы пробегали глазами по этим строчкам. Что у них всех общего? Они все рассказывают интересные истории. Вероятно, эти истории должны были убедить вас в чем-то. Или, возможно, подтолкнуть вас сделать что-то, познакомить с новой информацией или заставить пересмотреть свои предвзятые представления о реальности.
Как бы то ни было, по-настоящему хорошая визуализация данных - неважно, большая или маленькая, созданная из любви к искусству или для презентации - помогает вам понять, о чем именно способны рассказать данные.
20 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
Однажды я посвятил день задаче проверки трех чисел из целого массива данных, а все потому, что когда отдел графики New York Times создает некую диаграмму, он должен удостовериться в точности сведений. Только убедившись в надежности полученной информации, мы переходили к созданию презентации. Именно такое внимание к деталям делает графику в этой газете столь хорошей.
Посмотрите на любую схему или диаграмму в New York Times. Данные в ней всегда представлены кратко, ясно и чрезвычайно красиво. Однако что это значит? Когда вы смотрите на инфографику, вы получаете возможность понять данные. Важные моменты или области сопровождаются комментариями; символы и цвета аккуратно объяснены в легенде или в примечаниях; а еще Times делает все для того, чтобы история, содержащаяся в данных, прочитывалась аудиторией легко. Это уже не просто диаграмма или схема. Это графика.
Графика, представленная на рис. 1.1, похожа на ту, которую вы можете найти в New York Times. На ней показано, как увеличивается вероятность того, что вы умрете в ближайший год, в зависимости от вашего возраста.
Рис. 1.1. Вероятность смерти с учетом вашего возраста
22 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
Зайдите на блог OkTrends, и вы узнаете еще много чего интересного об онлайн-свиданиях - например, что на самом деле нравится белым людям и как случайно не оплошать: http://blog.
–  –  –
Рис. 1.4. Трендалайзер фонда Gapminder С точки зрения визуализации тут все довольно элементарно. Это просто динамическая диаграмма. Пузырьки обозначают различные государства и двигаются в соответствии с динамикой показателей бедности в конкретной стране на протяжении определенного года.
Так в чем секрет популярности выступления Рослинга? В том, что он говорит с убеждением и волнением. Он рассказывает историю. Сколько раз вы видели презентации со схемами и диаграммами, от которых все зевают?! Но у Рослинга все иначе. Он извлек смысл, заложенный в данных, и в полной мере раскрыл его. А если к этому добавить еще и глотание шпаги в конце лекции, все становится на свои места - в зале не остается равнодушных. Посмотрев лекцию Рослинга, мне захотелось взять в руки эти данные и самому их рассмотреть. Мне не терпелось вникнуть в эту историю поглубже.
Позже я посмотрел другую презентацию фонда Gapminder на ту же самую тему, с той же формой визуализации данных, но с другим докладчиком. Получилось отнюдь не так волнующе.
Если говорить честно, я чуть не задремал. Эмоций было ноль. Данные не показались мне
26 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
сколько пунктов он меняется за сутки? А за неделю? А за месяц? Существуют ли периоды, в которые курс поднимался сильнее, чем обычно? И если да, то почему это происходило? Имели ли место некие события, которые могли спровоцировать подобные изменения?
Как вы убедитесь сами, стоит начать с одного-единственного вопроса, взятого в качестве отправной точки, и тут же за ним потянутся следующие. Причем так обстоят дела не только " с временными рядами, но и со всеми типами данных. Попробуйте подойти к вашему массиву данных в большей степени как исследователь, и тогда вы, скорее всего, получите в итоге более интересные ответы.
" Данные типа временных рядов можно разделить по-разному. Иногда есть смысл представить значения по дням или по часам. В других случаях может оказаться, что полезнее взглянуть на данные по месяцам или по годам. В первом случае в графике, возможно, окажется больше шума, а во втором случае вы получите более обобщенный взгляд.
Те из вас, у кого есть сайт и кто пользуется той или иной компьютерной программой для анализа его посещаемости, могут в этом быстро убедиться. Если вы посмотрите на трафик на вашем сайте на базе посещаемости по дням, как это показано на рис. 1.6, то вы увидите, что он весьма бугристый. Колебания в нем довольно велики.
Рис. 1.6. Количество уникальных посетителей сайта FlowingData в день
28 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
которым очевидно чего-то не хватает - как будто графическому дизайнеру некогда было поразмыслить над данными, и он второпях придал им некую форму, лишь бы успеть к крайнему сроку. Очень часто то, чего так явно не хватает в подобных случаях, - и есть зависимость.
В статистике под зависимостью, как правило, подразумевают корреляцию и причинность.
Множественные переменные могут быть переплетены между собой сложными связями.
Шестая глава, «Визуализация зависимостей», посвящена именно этим понятиям и тому, как их визуализировать.
Однако и на более абстрактном плане, на котором вы не думаете об уравнениях и критериях проверки гипотез, вы можете разрабатывать диаграммы и графики для визуального сравнения и сопоставления величин и распределений. В качестве простого примера можно привести схему проникновения технологий в жизнь, взятую из «Доклада о мировом прогрессе»
и представленную на рис. 1.8.
–  –  –
Рис. 1.8. Проникновение технологий в жизнь во всем мире Столбцовые диаграммы показывают количество пользователей интернета, а также количество абонентов с коммутируемым доступом и широкополосных сетей на 100 жителей. Отметьте, что разброс у интернет-пользователей (от 0 до 95 на 100 жителей) гораздо шире, чем у двух других групп.
Проще и быстрее всего - предоставить компьютерной программе, которая у вас установлена, самой решить, какой диапазон использовать для каждой столбцовой диаграммы. Однако все
30 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
соблюдать несколько основных принципов. Каждый из них дает пространство для маневра, так что вам лучше воспринимать их, скорее, как некие ориентиры, а не как свод жестких правил, но если в графическом дизайне вы новичок, тогда вам именно с них и стоит начать.
–  –  –
* «Обезьяна видит - обезьяна делает» - ямайская поговорка, описывающая процесс копирования чужого поведения без понимания его смысла. Прим. пер.
Рис. 1.13. Некоторые из результатов, полученных во время соревнования по придумыванию названий на FlowingData
36 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
Рис. 1.15. Правильный подход при определении размеров кругов в диаграммах На рис. 1.16 представлена пара кругов, чьи размеры определялись по диаметру. Первый круг диаметром в два раза меньше второго, но по площади он меньше в четыре раза.
Рис. 1.16. Неправильный подход при определении размеров кругов в диаграммах То же самое происходит и с прямоугольниками, например в тримапах. В качестве индикатора величины там используется площадь, а не высота или ширина.
Укажите источники Казалось бы, не нужно говорить о необходимости указывать источники данных - но уж слишком много людей забывают это сделать. Откуда взялись все эти данные? Если вы посмотрите на диаграммы в газетах, вы увидите, что источник в них всегда указан - обычно мелким
38 ГЛАВА 1. КАК РАССКАЗАТЬ ИСТОРИЮ С ПОМОЩЬЮ ДАННЫХ
–  –  –
Прежде чем перейти к собственно визуальной части работы с данными, вам необходимо их получить.Именно данные делают визуализацию интересной. Если у вас нет интересных сведений, вы в конечном итоге получите лишь незапоминающуюся диаграмму или красивую, но бесполезную картинку. Где можно найти хорошие данные? Как до них добраться? Вот какие вопросы стоят перед вами на этом этапе.
Когда же данные будут у вас на руках, вам понадобится отформатировать их, чтобы загрузить в компьютерную программу. Возможно, вы получили данные в виде текстового файла с разделителями-запятыми или в виде таблицы Excel, и вам нужно конвертировать их во что-то типа XML. Или наоборот. Или, возможно, необходимые вам данные доступны лишь в разрозненном виде через интернет-приложение, а вы хотите получить таблицу целиком.
Вам нужно научиться добывать и перерабатывать данные, и тогда ваши способности в области визуализации существенно возрастут.
40 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
УНИВЕРСИТЕТЫ
Когда я стал магистрантом, я часто пользовался академическими ресурсами, которыми располагал, а именно библиотекой. Многие библиотеки существенно продвинулись в своем технологическом оснащении и к настоящему времени располагают огромными архивами данных. Различные факультеты и кафедры также поддерживают массу файлов данных, значительная часть которых находится в открытом доступе. Правда, многие из этих доступных массивов данных предназначены в первую очередь для использования при написании курсовых работ и выполнении домашних заданий. Я предлагаю вам зайти и посмотреть следующие ресурсы.Data and Story Library (DASL) (http://lib.stat.cmu.edu/DASL) - онлайн-библиотека файлов с данными и историями, иллюстрирующими применение основных статистических методов; относится к Университету Карнеги-Меллон.
Berkeley Data Lab (http://sunsite3.berkeley.edu/wikis/datalab) - часть библиотечной системы Калифорнийского университета в Беркли.
42 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
География У вас есть программа для локализации объектов, но нет географических данных? Вам повезло. В вашем распоряжении огромное количество географических файлов, в том числе в векторном формате (шейп-файлов).
TIGER (http://www.census.gov/geo/www/tiger) - сайт Бюро переписи населения США предоставляет, возможно, самые дорогие, но и самые детальные базы данных об автострадах, железных дорогах, реках и почтовых индексах, которые только можно найти.
OpenStreetMap (http://www.openstreetmap.org) - один из лучших примеров баз данных, созданных на общественных началах.
Geocommons (http://www.geocommons.com) - это одновременно и база данных, и картографическое приложение.
Flickr Shapefiles (http://www.flickr.com/services/api) - географические границы в том виде, в каком они представлены пользователями Flickr.
Спорт
Люди любят спортивную статистику, и вы можете получить доступ к данным этого типа за несколько последних десятилетий. Найти их можно на сайте журнала Sports Illustrated и на сайтах соответствующих спортивных команд и организаций, а также на сайтах, посвященных сугубо спортивной статистике.
Basketball Reference (http://www.basketball-reference.com) - источник исчерпывающих данных и сведений вплоть до прямых репортажей с игр Национальной баскетбольной ассоциации.
Baseball DataBank (http://baseball-databank.org) - сверхосновательный сайт, с которого можно скачать исчерпывающие наборы данных о бейсболе.
DatabaseFootball (http://www.databasefootball.com) - здесь можно посмотреть данные об играх Национальной футбольной лиги США по командам, по игрокам и по сезонам.
Мир в целом
Несколько заслуживающих внимания международных организаций также поддерживают базы данных о мире в целом, главным образом по таким показателям, как здравоохранение и уровень развития. И все же, работая с ними, вам придется кое-что отсеивать, так как многие массивы данных не очень хорошо структурированы. Нелегко получить стандартизированные данные, собирая их из разных стран разными методами.
Global Health Facts (http://www.globalhealthfacts.org) - данные из области здравоохранения в разных странах мира.
UNdata (http://data.un.org) - агрегатор данных из разных источников со всего мира.
44 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
Если в этом адресе вы удалите все, что следует за.html, страница будет по-прежнему загружаться, так что избавьтесь от этих лишних символов. На данный момент они вас не интересуют.
Должно получиться:
www.wunderground.com/history/airport/KBUF/2010/10/1/DailyHistory.html
48 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
# Open wunderground.com url timestamp = "2009" + str(m) + str(d) print "Getting data for " + timestamp url = "http://www.wunderground.com/history/airport/KBUF/2009/" + str(m) + "/" + str(d) + "/DailyHistory.html" page = urllib2.urlopen(url) # Get temperature from page soup = BeautifulSoup(page) # dayTemp = soup.body.nobr.b.string dayTemp = soup.findAll(attrs={"class":"nobr"}).span.string
–  –  –
# Build timestamp timestamp = "2009" + mStamp + dStamp # Write timestamp and temperature to file f.write(timestamp + "," + dayTemp + "\n") # Done getting data! Close file.
f.close() Вы наверняка узнали первые две строчки кода, с помощью которых вы импортировали необходимые библиотеки, - urllib2 и BeautifulSoup.
import urllib2 from BeautifulSoup import BeautifulSoup Далее создается текстовый файл под названием wunder-data-txt с правами на запись, используя метод open(). Все данные, которые вы извлечете, будут сохраняться в этом текстовом файле, расположенном в той же директории, куда вы сохранили свой скрипт.
# Create/open a file called wunder.txt (which will be a comma-delimited file) f = open("wunder-data.txt", "w")
52 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
Предпоследний кусок кода отвечает за составление метки времени исходя из года, месяца и дня. Метка времени дается в формате «ггггммдд». Здесь вы можете задать любой формат, но на данном этапе чем проще - тем лучше.
# Format day for timestamp
if len(str(d)) 2:
dStamp = "0" + str(d)
–  –  –
И наконец, в файл "wunder-data.txt" с помощью метода write() добавляются температура " и временная отметка.
# Write timestamp and temperature to file f.write(timestamp + "," + dayTemp + "\n") По окончании работы со всеми месяцами и днями применяется close().
# Done getting data! Close file.
f.close() Осталось лишь запустить код, что вы и сделаете в своем терминале с помощью вот такой команды:
$ python get-weather-data.py
–  –  –
программирования, и у вас появится возможность отобразить данные в любом желаемом вами формате так, чтобы они отвечали вашим нуждам в конкретный момент.
Самый легкий путь - это найти программиста, который сможет отформатировать все ваши данные и произвести их анализ, но в таком случае вы всегда будете зависеть от кого-то другого. Подобная зависимость становится особенно очевидной на ранних этапах любого проекта, когда итерация и изучение данных имеют ключевое значение для создания дельной визуализации. Честно говоря, если бы я занимался подбором кадров, я предпочел бы нанять кого-то, кто знает, как работать с данными, а не того, кому каждый раз на начальном этапе проекта будет нужна помощь со стороны.
ЧТО Я УЗНАЛ О ФОРМАТИРОВАНИИ
Когда я только начал изучать статистику в средней школе, данные нам всегда предоставлялись в аккуратном табличном формате. Все, что от меня требовалось сделать, - это вставить несколько чисел в таблицу Excel или в мой потрясающий графический калькулятор (что было предпочтительнее, так как позволяло играть в «Тетрис», делая вид, будто я выполняю классное задание). На протяжении всех лет учебы в бакалавриате ситуация оставалась практически без изменений. Поскольку я занимался изучением методов и теорем анализа, мои преподаватели не тратили лишнего времени на работу с сырыми, неподготовленными данными. Создавалось впечатление, будто данные всегда существуют в удобном для работы виде.
Это и вполне понятно, учитывая ограничения во времени и т. п. Но в магистратуре я осознал, что в реальном мире данные почти никогда не встречаются в нужном вам формате. Какие-то значения отсутствуют вовсе, другие появляются без какого-либо контекста или сопровождаются нелогичными, противоречивыми подписями и опечатками. Очень часто необходимые данные разбросаны по разным таблицам, а вам нужно, чтобы они все оказались в одной-единственной, причем выстроенными по одному какому-то показателю, такому как имя или уникальный идентификатор.
С этой же проблемой я столкнулся и тогда, когда начал заниматься визуализацией. И проблема становилась тем острее, чем сильнее мне хотелось добиться большего с помощью имеющихся в наличии данных. Сегодня для меня уже не является чем-то необычайным то, что на получение данных в нужном мне формате я трачу столько же времени, сколько собственно на выполнение работы по их визуализации. Иногда на наведение порядка в данных у меня уходит даже больше времени. Поначалу это может показаться странным, но вы убедитесь, что создание графики становится намного легче, когда данные у вас организованы так четко, как это было во времена вводного курса в статистику в средней школе.
Далее вы познакомитесь с различными форматами данных, с доступными инструментами, с помощью которых вы сможете работать с этими форматами, и, наконец, обретете некоторые знания в области программирования, применяя те же принципы, что и при извлечении данных в предыдущем примере.
56 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
РАСШИРЯЕМЫЙ ЯЗЫК РАЗМЕТКИ (XML)
Другой распространенный в сети формат - это XML. Его часто применяют для передачи данных через различные API. Существует множество разных типов XML и спецификаций, но на самом базовом уровне его можно охарактеризовать как формат текстового документа со значениями, заключенными в теги. Например, фид RSS (Really Simple Syndication) - который люди используют, подписываясь на блоги вроде FlowingData, - по сути, представляет собой XML-файл (рис. 2.7).Рис. 2.7. Фрагмент RSS-фида FlowingData
Производить парсинг XML относительно несложно, если использовать такие библиотеки, как Beautiful Soup для Python. После прочтения следующих разделов книги вы начнете лучше разбираться в XML, а также в CSV и JSON.
58 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
MR. DATA CONVERTER
Часто бывает и так, что у вас есть возможность получить все данные в Excel, но затем необходимо конвертировать их в другой формат, который в большей степени соответствует вашим потребностям.Подобное происходит почти всегда в случае создания графики для Сети. Вы уже умеете экспортировать таблицы Excel в формате CSV, но как быть, если вам нужно сделать что-то еще? Вам поможет Mr. Data Converter.
Mr. Data Converter - это простой и бесплатный инструмент. Его создал Шэн Картер (Shan Carter), редактор графики " в New York Times. Большую часть своего рабочего времени Картер проводит в создании интерактивной графики для онлайн-версии газеты. Ему часто приходится конвертировать данные, чтобы они подходили для использования в программах, с которыми он работает, а потому неудивительно, что он создал инструмент, упрощающий этот процесс.
Пользоваться Mr. Data Converter легко. Как вы можете убедиться, взглянув на рис. 2.9, Рис. 2.9. Mr. Data Converter существенно упрощает перевод данных из одного интерфейс совершенно простой. Все, что формата в другой
60 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
Рис. 2.11. Имена в формате таблицы после обработки в Mr. People Подобно Mr. Data Converter, Mr. People также является программой с открытым исходным кодом, и ее можно скачать с GitHub.
ПРОГРАММЫ ТАБЛИЧНЫХ ВЫЧИСЛЕНИЙ
Конечно, если вам нужно просто рассортировать некие данные или внести небольшие изменения в отдельные пункты, вы всегда сможете воспользоваться вашей любимой табличной программой. Если вам предстоят небольшие правки, идите проторенной дорогой. Если же нет, тогда попробуйте сначала то, о чем говорилось выше (особенно если у вас огромный массив данных), или подумайте о создании кода, специально предназначенного для конкретной задачи .62 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
20090101,26 20090102,34 20090103,27 20090104,34 20090105,34 20090106,31 20090107,35 20090108,30 20090109,25 …
–  –  –
max_temperature26/max_temperature /observation observation date20090102/date max_temperature34/max_temperature /observation observation date20090103/date max_temperature27/max_temperature /observation observation date20090104/date max_temperature34/max_temperature /observation … /weather_data Температура за каждый день содержится в тегах observation, включающих теги date и max_temperature.
Чтобы конвертировать CSV в формат XML, как это сделано выше, вы можете использовать следующий фрагмент кода:
import csv reader = csv.reader(open("wunder-data.txt", "r"), delimiter=",") print "weather_data"
for row in reader:
print "observation" print "date" + row + "/date" print "max_temperature" + row + "/max_temperature" print "/observation’ print "/weather_data" Необходимые модули вы импортируете, как и прежде. В данном случае, чтобы прочитать wunder-data.txt, вам нужен только CSV-модуль.
import csv Вторая строчка кода открывает для чтения wunder-data.txt, используя open(), а затем загружает его при помощи метода csv.reader().
reader = csv.reader(open("wunder-data.txt", "r"), delimiter=",")
64 ГЛАВА 2. КАК ОБРАЩАТЬСЯ С ДАННЫМИ
–  –  –
переводе CSV в XML, прогнать цикл по каждому наблюдению и отобразить значения в нужном вам формате.
Это приведет вас туда, откуда вы начинали:
20090101,26 20090102,34 20090103,27 20090104,34 … Для полноты картины вот вам еще и код, с помощью которого можно конвертировать CSV в формат JSON.
import csv reader = csv.reader(open("wunder-data.txt", "r"), delimiter=»,») print "{ observations: [" rows_so_far = 0
for row in reader:
–  –  –
print "] }" Пробегитесь глазами по строчкам, чтобы понять, что здесь происходит. Мы снова имеем дело с той же логикой, только с иным результатом. Если вы запустите приведенный выше код, то получите свои данные в формате JSON.
Вот как они будут выглядеть:
–  –  –
Пример, конечно, простой, но он наглядно демонстрирует, как вы можете развить эти принципы для форматирования или обогащения данных как вашей душе угодно.
Запомните эти три шага:
Закругляясь В настоящей главе обсуждалось, как находить необходимые данные и что с ними делать после нахождения. В процессе визуализации это очень важный этап, чтобы не сказать - самый важный. Информационная графика интересна настолько, насколько интересны лежащие в ее основе данные. Вы можете украсить свою диаграмму или график как хотите, но именно данные (или результаты вашего анализа этих данных) будут оставаться основой основ. И теперь, когда вы знаете, откуда и как доставать данные, вы готовы двигаться дальше.
Вы также впервые попробовали свои силы в программировании. Вы извлекли данные с сайта, а затем отформатировали и перегруппировали их. Этот прием еще сослужит вам добрую службу в следующих главах. Однако самое важное в коде - логика. Вы использовали Python, но с таким же успехом вы могли бы обратиться и к Ruby, и к Perl, и к PHP. Каким бы языком вы ни пользовались, принцип действия остается неизменным. Когда вы освоите один из языков программирования - а если вы уже состоявшийся программист, вы подтвердите мои слова, - вам будет гораздо легче затем освоить еще один.
Не всегда нужно прибегать к кодам. В некоторых случаях приложения, действующие по принципу перетаскивания (drag and drop), способны существенно облегчить вашу работу, и в таких случаях вам стоит этим пользоваться. В конечном счете, чем больше инструментов будет в вашем инструментарии, тем меньше опасность, что вы увязнете в процессе работы.
Итак, данные у вас уже есть. Теперь пора приступить к визуализации.
Выбор инструментов для визуализации данных Из предыдущей главы вы узнали, как находить данные и как приводить их к тому формату, который вам необходим. Теперь вы готовы приступить к визуализации. Один из вопросов, которые люди чаще всего задают мне на этом этапе, звучит так: «Какое программное обеспечение мне следует использовать для визуализации данных?»
К счастью, вариантов у вас много. Часть программ уже предустановлена у вас на компьютере и работает по принципу перетаскивания (drag and drop). Чтобы пользоваться другими инструментами, вам потребуются некоторые навыки программирования. А есть и такие средства, которые не были разработаны специально для графического представления данных, но тем не менее могут оказаться вам полезными. Настоящая глава посвящена теме выбора программного обеспечения для визуализации данных.
" Чем большим количеством инструментов вы овладеете, чем лучше станете разбираться в их преимуществах, тем меньше вероятность, что вы растеряетесь, не зная, что делать далее с имеющимся у вас массивом данных, и тем выше шанс, что вы создадите диаграмму или " график, достойно представляющие ваше видение.
70 ГЛАВА 3. ВЫБОР ИНСТРУМЕНТОВ ДЛЯ ВИЗУАЛИЗАЦИИ ДАННЫХ
–  –  –
Рис. 3.2. Варианты диаграмм в Microsoft Excel Некоторые люди не воспринимают Excel всерьез, но эта программа отнюдь не плоха, если применять ее в подходящих целях. Я, например, не использую Excel, если мне необходимо провести глубокий анализ или разработать графический объект для публикации. Но если я получаю небольшой набор данных в файле формата Excel, как оно часто бывает, и хочу быстренько составить общее представление о том, что же это передо мной, то я предпочитаю парой щелчков мышью состряпать диаграмму прямо в этой всеми любимой табличной программе.
ДИАГРАММЫ И ВПРАВДУ МОГУТ БЫТЬ ЗАБАВНЫМИ
Первая диаграмма, которую я построил на компьютере, делалась в Microsoft Excel, и создал я ее в пятом классе для школьной ярмарки научных проектов. Я и мой партнер по этой работе пытались выяснить, по какой поверхности улитки передвигаются быстрее всего. Смею вас заверить, это было революционное исследование.
Даже в те времена, как сейчас помню, я изрядно позабавился, создавая диаграмму. Мне понадобилась целая вечность, чтобы освоиться в программе (тогда компьютер был для меня новинкой), но когда я в конце концов разобрался, что к чему, процесс принес мне настоящее удовольствие. Я ввел числа в таблицу и тут же получил диаграмму, которую можно было раскрасить в любой цвет, какой захочется.
Я выбрал ярко-желтый, от которого аж глаза слепнут, - мне показалось, что это самое то.
72 ГЛАВА 3. ВЫБОР ИНСТРУМЕНТОВ ДЛЯ ВИЗУАЛИЗАЦИИ ДАННЫХ
–  –  –
Рис. 3.8. Диаграмма рассеяния на Many Eyes Рис. 3.9. Дерево слова «право» в Конституции США на Many Eyes При этом вы легко можете переключаться с одного инструмента на другой, используя одни и те же данные. На рис. 3.10 Конституция визуализирована с помощью стилизованного облака слов, известного как Wordle. Чем чаще встречается слово, тем оно больше по размеру.
76 ГЛАВА 3. ВЫБОР ИНСТРУМЕНТОВ ДЛЯ ВИЗУАЛИЗАЦИИ ДАННЫХ
–  –  –
как другие не так надежны в этом деле, но позволяют создавать гораздо более привлекательные визуальные объекты или придавать им интерактивность. На каком языке будет лучше остановиться, зависит от того, какие цели вы ставите перед конкретной диаграммой и в работе с каким из языков вы чувствуете себя более уверенно.
Некоторые люди придерживаются одного определенного языка и со временем осваивают его очень хорошо. Это замечательно также и в том случае, если вы новичок в области программирования. Я горячо рекомендую вам придерживаться данной стратегии. Сперва ознакомьтесь с основополагающими и важными принципами кода.
Используйте тот язык, который лучше всего подходит для ваших нужд. Однако есть особое удовольствие в том, чтобы изучать новые языки и осваивать новые приемы в игре с данными.
Так что вам следует накопить приличный опыт в программировании, прежде чем решить, что вам больше нравится.
В предыдущей главе мы говорили о том, как управлять данными с помощью языка Python.
Это делает настоящий язык особенно полезным для анализа и для мощных вычислений.
Помимо прочего, у Python опрятный и удобочитаемый синтаксис, который нравится программистам.
С ним вы сможете отработать множество модулей, чтобы создать информационную графику, подобную представленной на рис. 3.11.
С точки зрения эстетики, данный объект не представляет собой чего-то выдающегося. Вы вряд ли захотите отдать только что полученный с помощью Python график в печать. Результат обычно выглядит неаккуратным. Тем не менее это хорошее начало на пути изучения данных. А еще вы можете экспортировать изображение, а затем дообработать его или добавить в него информацию, используя графический редактор. Рис. 3.11. График, созданный в Python
80 ГЛАВА 3. ВЫБОР ИНСТРУМЕНТОВ ДЛЯ ВИЗУАЛИЗАЦИИ ДАННЫХ
–  –  –
В ДЕЯТЕЛЬНОСТИ БИБЛИОТЕКИ ВУЗА Монография Кемерово 2010 УДК 78.305.8 ББК 022.9 Б72 Рецензенты: доктор педагогических наук, профессор Е. Л. Кудрина; доктор педагогических наук, профессор Н. И. Гендина; доктор культурологии, профессор Г. Б. Паршукова Боброва, Е. И. Б72 Информационно-коммуникационные технологии в деятельности библиотеки вуза...» |