Построение визуализации при помощи Plot.ly

1. Зайдите на сайт plot.ly
plotly01

2. Заведите себе аккаунт. Для этого нажмите на серую кнопку “SIGN UP” в правом верхнем углу.

plotly02

Появится следующая форма.

plotly03

В левой части формы заполните следующие поля:
Email — напишите свой емейл,
Username — напишите свое имя пользователя,
Password — придумайте и напишите пароль к акаунту.
После заполнения этих полей нажмите на кнопку “CREATE ACCOUNT”.

Вы также можете завести свой аккаунт при помощи авторизации в социальных сетях (Facebook, Google+, Twitter или Github).

Вы увидите основную страницу сервиса Plotly.
Нажмите в правом верхнем углу кнопку “+ NEW PROJECT”.

plotly04

Во время создания проекта появится такая иконка.

plotly05

Надо подождать некоторое время, чтобы проект сгенерировался на удаленном сервере.

plotly06

Для того, чтобы загрузить данные в проект, необходимо нажать на кнопку “ADD DATA”, находящуюся в левом верхнем углу.
Появится выпадающее окно, в котором необходимо указать требуемый набор данных.
Пусть это будет тестовый набор данных “abort_adult-09-06-2015-21-53-05_processed.csv (скачать набор данных можно здесь: http://opendata.kg/dataset/aborts-adult)”.
Получаем следующее.

plotly07

Транспонируйте таблицу, нажав на кнопку plotly08.
И вы увидите следующий результат.

plotly09

Для того, чтобы грамотно разместить данные на диаграмме, необходимо указать значения для оси Х и оси Y.
Это указывается при помощи выделения кнопок “choose as x” и “choose as y”.

plotly10

В меню, расположенном слева, выберите тип диаграммы Scatter plot и нажмите на синюю кнопку внизу Scatter plot.

plotly11

В результате получится следующая диаграмма.

plotly12

Теперь нужно внимательно посмотреть на диаграмму и оценить правильность размещения на ней информации.

Обратите внимание, что не подписаны координаты у диаграммы, и легенда диаграммы выглядит не информативно.
Исправьте поскорее эти недостатки!
Для того, чтобы поменять название значений, нажмите кнопку “Rename” рядом с названием колонки.

plotly13

Для того, чтобы поменять название диаграммы, а также осей координат, необходимо дважды кликнуть мышью на надписях “Click to enter Plot title” (чтобы поменять название), “Click to enter X axis title” (чтобы поменять название оси X) и “Click to enter Y axis title” (чтобы поменять название оси Y) соответственно.
Название — “Прерывание беременности (аборты) в возрасте 18-49 лет”.
По оси Х — “Статистика по годам”.
По оси Y — “Количество абортов”.

Получится следующая диаграмма.

plotly14

Но такой тип диаграммы получается не особо информативным.
Хотя уже здесь можно заметить странный пик в 2009 году в г. Ош.
Поменяем тип диаграммы, чтобы добиться бОльшей информативности.
Для этого вернемся на вкладку “GRID” (либо если вкладка переименована, то на ней будет видно начало заголовка, как в нашем случае) и выберем тип “Line plot”.

plotly15

Получим следующую диаграмму на вкладке “Plot”.

plotly16

Обратите внимание, что в 2009 году в Оше было зафиксирован “пик” — 102,2 (?) случая абортов, хотя в этом же 2009 году в Бишкеке был зафиксирован “провал” — 1,4 случая.

Для предоставления доступа к созданной диаграмме нажмите кнопку “Share” в правой части.

plotly17

Введите имя файла во всплывающем окне.

plotly18

Образованная женщина – залог благополучного общества!

«Любая попытка запретить девочке ходить в школу является преступлением против всех девочек, а также посягательством на право получать образование и вести полноценную жизнь. Это недопустимо»

— заявила Генеральный директор ЮНЕСКО Ирина Бокова.

Во время обработки данных отчёта образовательных учреждений города Душанбе по контингенту учащихся, я столкнулась с цифрами, которые подтолкнули меня изучать их более подробно.

Одна из зашкаливающихся цифр, указанных в отчете, — это количество учащихся девочек в школах города Душанбе. Тенденция показала рост отклонения от обучения среди девочек после окончания 5-го класса.

графика1

 Количество учащихся согласно обучению по классам за 2014 год. В том числе, общее количество уходов девочек из ОУ г. Душанбе.

В традиционных семьях родители иногда вынуждены прервать обучение своих детей, и это часто затрагивает девочек. Поводом для этого действия бывают разные проблемы. В большинство случаях семья не может обеспечит условиями своих детей для окончания обучения.

Правозащитники страны отметили факт резкого снижения грамотности среди сельского населения, особенно среди девочек.

Основная проблема недоучившихся школьниц — это то, что их рано выдают замуж или не могут обеспечить обучения и судьбы таких девочек складываются по-разному. Данные статистики Комитета по делам женщин Республики Таджикистан показали, что ранние браки довольно часто распадаются из-за неполноценной подготовке к самостоятельной жизни. В результате молодые разведенные женщины остаются одни в самостоятельной жизни.

графика2

Количество браков и разводов в РТ с 2008 по 2013 год. (Данные агентства по статистике при Президенте Республики Таджикистан)

Еще одна распространенная проблема среди молодежи, особенно среди женского пола, это попытка суицида. Согласно отчета ЮНИСЕФ — Таджикистан «Самоубийства среди детей и молодежи в Согдийской области Таджикистана» от 2013 года, самое большое число попыток и завершенных самоубийств 51% и 59% приходится на возрастную группу от 18 до 24 лет, далее следуют группы 25-49 лет и 16-17 лет.

Suicide_Study_Report

Отчет ЮНИСЕФ — Таджикистан «Самоубийства среди детей и молодежи в Согдийской области Таджикистана» за 2013 год.

Министерство образования РТ не отказывается от существования этой проблемы и ведет активную работу в этом направлении.

Согласно данным статистики Министерство образование, в начальных классах количество обучающихся одинаковое, однако начиная со старших классов, девочек становится почти в два раза меньше чем мальчиков.

Среди населения существует распространенное мнение, что неграмотные невесты ценятся больше: они безропотны, покорны и материально полностью зависят от семьи мужа, что делает их ведомыми. Однако не всегда ожидания совпадают с реальными случаями из жизни. Не все браки заключаются на небесах, и не многие наши молодые люди позволяют себе думать о браке по любви. Стоит отметить, что небольшой процент молодежи заключают браки с иностранными гражданами. Причина сего явления на данный момент до конца не ясна, однако обсуждение и осуждение общества не останавливает многих совершать данный поступок.

Региональный менеджер фонда Ага-Хана в Раштской долине Мухаммади Шарипов в интервью ВВС отметил, что:

В школах еще не созданы все условия для учебы. Повсеместно ощущается нехватка учителей. В райцентрах власти стали контролировать посещаемость учениками занятий, но в дальних кишлаках трудно уследить за тем, кто приходит на занятия. Мужчины, в основном, на заработках в России. Все тяготы семейной жизни ложатся на плечи женщин. Естественно, что у них физически не хватает времени следить в должной мере за детьми. Да и экономические вопросы определяют многое.

Многие семьи порой должны принять решение, кому же из детей продолжать образование. Выбор, как правило, падает всегда на мальчиков, которые в будущем, как предполагается, будут кормильцами семьи. Что же касается девочек, то считается, что они выйдут замуж и заботы по их обеспечению возьмет на себя будущий муж или его семья.

Однако есть семьи, которые борются за образование своих детей и идут до конца к своей цели. История, которая произвела резонанс в сети — это «История Бибинисо». Она дошла до министра образования РТ Саидова Нуриддина и рассказала не только о том, что произошло во время экзаменов для получения квоты, но и о проблемах образования в селах, коррупции и несправедливости по отношению к ней. Она хотела, чтобы приняли меры по ее зачислению в вуз для продолжения своего образования, так как она была уверенна в своих навыках и знаниях.

Для просмотра видео об Бибинисо пройдите по ссылке Хабаргузории Озодагон, Таджикистан.

Благодаря указу Президента страны, одаренным девушкам и мальчикам из отдаленных регионов выдаются безвозмездные квоты для получения образования в ВУЗах страны и за его приделах.

Во время изучения данных я выявила, что большинство девочек бросают школу после 9 класса. Почему они это делают и какого основная причина окончательно не ясна, однако выявить корень проблемы стоит для устранения этой проблемы. Согласно данным с 2006 по 2014 года, статистика получения среднего образования среди девочек динамично растет.

Графика3

Количество учащихся согласно обучения по классам. В том числе, общее количество уходов девочек из ОУ г.Душанбе с 2007 по 2014 года.

Оказание помощи в получении образования среди женского пола на начальном этапе важна и это принесет ощутимую выгоду для нации. Инновационные методы обучения в образовании эффективны для подготовки образованного населения для улучшения уровня жизни в стране. Надо прекратить быть потребителями и пора становится производителями. Самый лучший способ для развития общества — это вкладывать в развитие человеческих ресурсов.

Фотография — РИА Новости.
Источники данных:

  • Сборник статистических данных управления образования города Душанбе за 2013-2014 год.
  • Отчета ЮНИСЕФ — Таджикистан «Самоубийства среди детей и молодежи в Согдийской области Таджикистана» за 2013 год.
  • Агентства по статистике при Президенте Республики Таджикистан — Статистика социально-демографический сектор «Число зарегистрированных браков и разводов за 1998-2013 года».

ЧТО ВАЖНО ДЛЯ СОЗДАНИЯ КАЧЕСТВЕННЫХ МАТЕРИАЛОВ В ДАТА-ЖУРНАЛИСТИКЕ?

Перевод интервью с четырьмя журналистами, опубликованный в ESONLINEBLOG

В рамках моего исследования я подписался на рассылку “datadrivenjournalismList about Data Driven Journalism and Open Data in Journalism” и задал несколько вопросов о дата-журналистике другим членам этой рассылки. Четверо из них любезно ответили. Я хотел бы познакомить вас с их мнениями и опытом в журналистике данных. В своих работах они эффективно освещают социальные вопросы и проблемы через анализ данных и различные методы визуализации.

АДРИАН БЛАНКО ПРИНИМАЛ УЧАСТИЕ В ЖУРНАЛИСТСКОМ ПРОЕКТЕ О БЕРЛИНСКОЙ СТЕНЕ

В журналистике данных Адриан Бланко работает фрилансером. Он старается погрузиться в программирование как можно глубже.

Вопрос №1. Как ты находишь данные для своих работ? И как отыскать в них историю?

Я использую порталы с открытыми данными, такие как, data.gov.uk или данные из других открытых ресурсов. Также я создаю собственные наборы данных с информацией из пресс-релизов и прочих источников.

Вопрос №2. Могли бы вы рассказать о своей лучшей работе в журналистике данных? Какая самая главная особенность этой работы?

Это материал о Берлинской стене. Он был создан в Испании, когда я стажировался на RTVE, и является одним из самых завершенных моих проектов. Над созданием этого проекта я трудился вместе с мультипрофильной командой специалистов.

За все 28 лет, что стена разделяла Берлин на две части, 138 человек погибло при попытке пересечь ее. Погибло 121 мужчин, 8 женщин и 9 детей. Этот интерактивный проект, сделанный на 25-ю годовщину падения стены, рассказывает о том, кто были эти люди и как они погибли. Данные мы добыли из мемориального комплекса «Берлинская стена» и из федерального статистического управления Destatis.

Характерная особенность истории в том, что она легко и не без очарования показывает человеческую жизнь в Германии в этомалознакомое всемвремя.

1

Вопрос №3. Какие на твой взгляд самые важные навыки, знания и принципы требуютсяжурналисту для создания достойных материалов?

Как начинающий дата журналист, я считаю, что важно обладать широким кругозором и каждый день учиться чему-то новому.

АЛЕКСАНДРА ДУКОВСКА СОЕДИНЯЕТ ВИДЕО, ИЗОБРАЖЕНИЯ И ДАННЫЕ,СВЯЗАННЫЕ С ЗАГРЯЗНЕНИЯМИ ВОЗДУХА

Александра Дуковска – мультимедийный журналист. Для создания некоторых историй она использовала Google Spreadsheet и Excel.

Вопрос №1. Как ты находишь данные для своих работ? И как отыскать в них историю?

“Для создания историй, основанных на данных, я использовала уже открытую государственными учреждениями информацию. Например, я брала данные по качеству воздуха из министерства экологии или государственного статистического управления Македонии. В иных случаях, это была информация из OECD. Я использую общедоступные данные”.

Вопрос №2. Могли бы вы рассказать о своей лучшей работе в журналистике данных?Какая самая главная особенность этой работы?

Я делала видео о загрязнениях воздуха и совмещала их с онлайн-данными о качестве воздуха и измерениях в этой области для иллюстрации разницы в определенные дни и периоды.

Вопрос №3. Какие на твой взгляд самые важные навыки, знания и принципы требуются журналисту для создания достойных материалов?

В медиасреде ценно каждое умение, связанное с журналистикой данных.

КОМАНДА АНДРЕА НЕЛЬСОНА МАУРА ОБНАРУЖИЛА, ЧТО БОЛЕЕ 23.000 ЭМИГРАНТОВ УМЕРЛИ, ПЫТАЯСЬ ДОБРАТЬСЯ ДО ЕС

Андреа Нельсон Мауро – основатель Dataninja.it, обладатель награды Italian Data journalism Network. С 2012 года они работают командой из семи человек (дата журналист, специалисты по обработке и поиску данных, работник с гео-данными и аналитик). Они проводят национальные и международные расследования на злободневные темы.

Например:

#MigrantsFiles: получило награду Data Journalism Award в 2014 году.

3

 

ConfiscatiBene.it: В центре внимания – активы, конфискованные у Итальянской и Европейской мафии.

Эта группа работает для итальянских и международных газет.

Вопрос №1. Как ты находишь данные для своих работ? И как отыскать в них историю?

Из открытых онлайн ресурсов, сайтов различных учреждений. Вы можете найти историю, анализируя всевозможными способа наборы данных, но самое важное – создать новый набор, собрав данные из разных ресурсов. При этом необходимо придерживаться определенной структуры в материале, чтобы читателю все сразу стало ясно.

Вопрос №2. Могли бы вы рассказать о своей лучшей работе в журналистике данных? Какая самая главная особенность этой работы?

#MigrantsFiles мы создавали вместе с Journalism++ (французско-немецкое агентство по дата-журналистике, возглавляемое Николасом Кейзером-Брилем) и других журналистов-фрилансеров из ЕС. Мы обнаружили, что более 23.000 эмигрантов умерли, пытаясь добраться до ЕС. Никто прежде не придавал значения этому событию.

Вопрос №3. Какие на твой взгляд самые важные навыки, знания и принципы требуются журналисту для создания достойных материалов?

Лучше всего (имхо): работа в мультипрофильной команде (например, взгляните на состав команды dataninja.it); готовность делиться данными, информацией и новостями с другими журналистами; добросовестное отношение к работе, основанное на принципах прозрачности и открытости информации.

МИХАЭЛЬ БАУЭР СОЗДАЛ ЖУРНАЛИСТСКИЙ МАТЕРИАЛ, ОСНОВАННЫЙ НА ДАННЫХ ОБ ИЗБИРАТЕЛЬНОЙ РЕФОРМЕ В АВСТРИИ

Михаэль Бауэр – дата-журналист национальной газеты Австрии derStandard.at. Он ищет истории и создает вручную огромное количество интерактивной инфографики.

Вопрос №1. Как ты находишь данные для своих работ? И как отыскать в них историю?

У нас есть ресурсы, которые мы используем для регулярного выпуска историй. Это могут быть открытые базы данных, сайты статистических учреждений и опубликованные отчеты. К сожалению, в последнее время основная часть документов публикуется в PDF, но в большинстве случаев Tabula неплохо выручает.

Поиск историй – это всегда большая аналитическая работа. Но, чаще всего, вы ищете данные уже имея в голове план истории. Часто к нам обращаются коллеги, которые нашли интересную историю, но не могут отобрать нужную информацию.

Вопрос №2. Могли бы вы рассказать о своей лучшей работе в журналистике данных? Какая самая главная особенность этой работы?

Моя лучшая работа еще впереди. Сейчас я работаю над достаточно большим проектом, но я также доволен и нашим материалом об избирательной реформе. Городское управление Вены обсуждало избирательную реформу, но дискуссия велась достаточно безграмотно. Мы взглянули на их предложения и проработали изменения, которые они внесли. Эта незначительная разница и называлась реформой.

4

Вопрос №2. Могли бы вы рассказать о своей лучшей работе в журналистике данных? Какая самая главная особенность этой работы?

Любопытство и еще раз любопытство. Умение критично относиться к той информации, что вы находите. А технологию всегда можно освоить.

Sensor Journalism: бесплатные вебинары

 

Отличная новость для фанатов сенсорной журналистики / sensor journalism!sensor journalism webinars

OKCast и Sensor Journalism Lab запустили серию мартовских воскресных вебинаров на эту тему:

8 марта —   «Sensor Journalism: An Introduction»

15 марта — “Toward an Educational Module for Sensor Journalists”

22 марта — “Internet of Things and Smart Cities”

29 марта —  “Sensor Calibration and Certification”

Если вы не успели на какую-то лекцию, ее можно будет посмотреть в записи на сайте проекта.

Узнать больше: http://sensorjournalism.okcast.org/

 

 

Как собирать данные с веб-страниц при помощи R, the RVest and pipeR Way

Мы публикуем перевод урока Алекса Бреслера (Alex Bresler) с пошаговой инструкцией по скрейпингу данных с помощью R.

Если вам нравится спорт, базы данных и визуализация так же, как и мне, то этот пост для вас. В этом уроке мы научимся использовать мощь программного обеспечения R для создания функции, которая позволит нам получить доступ к данным с сайта Basketball Reference.

Вооружись ff

Для того чтобы принять участие в этом приключении, вам понадобится иметь в арсенале серьезное оружие. Cначала проверьте, установлено ли у вас R (программное обеспечение для статистических вычислений) и RStudio  (среда разработки программного обеспечения для языка программирования R). Затем, если у вас еще нет Firefox или Chrome, выберите одного из этих боевых скакунов. И наконец, установите замечательный виджет SelectorGadget. Запустите R , прохрустите пальцами: на этом подготовка закончилась. Пришла пора играть.

Время веселья ff2

Теперь, когда мы готовы, нужно определиться, что именно мы хотим исследовать. Так как я огромный фанат Nets Brooklyn и до сих пор на седьмом небе от того, как мы недавно порвали New York Knickerbockers, то решил исследовать базы данных команды NBA с сайта Basketball Reference.

Побродив по ссылкам на главной странице, мы все-таки нашли то, что искали: таблицу результатов за все сезоны. Посмотрим на сезон 2013-2014. По правде говоря, выглядит просто как куча таблиц. Но для извлечения данных это прекрасная новость. Давайте попробуем вытащить данные из таблицы с командной статистикой. Для этого возьмем виджет Selector, спустимся на конец таблицы и выделим ее так, чтобы по краям появилось оранжевое обрамление. Должно появиться окно с надписью #team.

Это CSS Selector для таблицы. Теперь мы уже знаем, что нужно, чтобы перенести эти данные в R. Перемещаемся назад в RStudio, создаем новый скрипт-файл R, — настало время извлечь данные.

Готовься, целься, пли ff3

В скрипт нужно загрузить пакеты, которые принесут нам победу в этом бою. Я собираюсь вставить код, но перед этим оставлю здесь несколько маленьких заметок. Как программист-самоучка, я люблю писать код слева направо и присваивать значения переменным, используя знак ->, что почему-то не одобряется корифеями. Большинство людей пишут справа налево и присваивают значение переменным при помощи знака <-, но мы живем в свободной стране, и мне нравится писать код так, как я привык читать. В любом случае, вы можете делать, как вам удобно. Здесь нет неправильного ответа, вопрос лишь в том, будет ли это работать.

Следующий пункт: в R появилась новая модная примочка, которую используют все крутые ребята, она называется piping (конвейер данных) и используется с символами %>% или %>>%. Можете воспринимать их как слово THEN (следовательно). Мне же больше нравится %>>% из потрясающего пакета pipeR. Наконец, если увидите #, знайте, что это комментарий, и предшествующая строка кода программой не выполняется. Простите, пожалуйста, за эту неразбериху. Надеюсь, вы поймете большинство моих комментариев.

Загрузите необходимые программные пакеты

Начнем скрейпинг

Шаг первый. Давайте поместим таблицу в R. Так как мы хотим сопоставить ее с другими таблицами, необходимо отключить заголовки и посмотреть, сможем ли мы найти строку с именами столбцов. На сайте Basketball-References все таблицы со статистикой начинаются с колонки под названием Rk (что значит rank).

Как мы видим, заголовки находятся в первой строке [в некоторых случаях во второй]. Давайте извлечем данные из этой строки и переместим их в вектор, содержащий строковые элементы. Затем мы используем этот вектор, чтобы задать названия в нашем дата-фрейме. вектор в R — это один из типов данных. Его специфика в том, что все его элементы должны быть одного формата (например, только строковые значения, или только числовые, или только булевы).

Заголовки в R следует писать с маленькой буквы. Помимо этого, R просто терпеть не может такие вещи, как пробелы и символы %, / в заголовках, поэтому замените их все точкой. Для того чтобы подготовиться к написанию функции, нужно найти строку с заголовками и взять все данные, что находятся ниже.

Ехууу, данные уже в R

Теперь у нас есть дата-фрейм в рабочем пространстве, который носит название total_table. Также мы уже нашли и удалили заголовки, но осталось провести еще пару зачисток, прежде чем мы получим нужный набор данных. После некоторых групп стоит звездочка, это значит, что команда вышла в плей-офф (фанаты Knicks, простите). Давайте добавим колонку с логическими значениями для команд, которые вышли в плей-офф и удалим звездочки. Теперь давайте удалим столбец с номерами (rank) и избавимся от строки со средними показателями, так как мы можем сами привести общую статистику при необходимости.

Мы сделали это! Посмотрите, теперь у нас есть чистый блок данных

nets-fan

Сохраните файл в CSV {а вообще — на ваше усмотрение}

Это было легко. Давайте покончим со всем этим и переведем наш код в функцию

Теперь, когда мы уже научились вытягивать данные с веб-страницы в таблицу, давайте покажем R, как нужно создавать функцию, которая применима к разным случаям. Если мы доведем все до конца, то сможем делать очень крутые вещи. Например, пройтись по всем сезонам, начиная с 1951 года, или вытянуть данные из различных таблиц с веб-страницы. Мы станем мастерами в работе со всеми данными команды NBA благодаря всего нескольким аргументам, подключению к интернету и R.

Ключ ко всему – это понимание структуры URL. К счастью, наши друзья из Sports Reference упростили нам задачу. Структура URL состоит из трех вещей: основа, лига и год окончания сезона. Мы легко можем научить нашу функцию вставлять три параметра, чтобы сформировать URL.

Итак, мы уже знаем, как вытянуть данные из таблицы, и URL у нас тоже есть. Теперь нужно извлечь ID команды, который можно получить со страницы с этим URL точно так же, как мы скрейпили данные для таблицы, только теперь мы будем искать XML-тэги с // и гиперссылки. Этот процесс также требует некоторой зачистки данных.

Теперь нам нужно добавить в блок данных сезон и имя таблицы: команда, противник и прочие данные по каждому сезону. Если посмотреть информацию за все года, окажется, что там есть много вещей, которые можно использовать. Функция должна позволять найти данные из любой таблицы. Наконец, нам нужна возможность делать временные отметки, если мы хотим отслеживать изменения в данных за текущий сезон или получать чистые данные из Sports References автоматически.

Итак, вот она наша функция getBREFTeamStatTable

Давайте проверим ее. Обратите внимание, что я уже заполнил функцию, так что вы можете получить готовые данные за этот год, не вводя никаких параметров. Давайте попробуем, скрестить пальцы!


getBREFTeamStatTable() -> team2015
team2015 %>>% kable('html', table.attr='id="team2015"')

 giphy

Подведем итоги

Надеюсь, этот урок показался вам интересным, поучительным и не сложным для понимания. Не стесняйтесь смотреть исходный код и обязательно используйте функцию, которую мы создали. В следующий раз я использую нашу прекрасную функцию для создания интерактивной визуализации данных и изучу некоторые алгоритмы, которые откроют их перед вами в еще более могущественном свете. А пока продолжайте в том же духе, и если есть вопросы или комментарии, не стесняйтесь обращаться ко мне в твиттер.

Алекс Бреслер