{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Reveal the Data: заметки с тегом инструкция",
    "_rss_description": "Блог Ромы Бунина про визуализацию данных, Tableau и развитие BI-систем.",
    "_rss_language": "ru",
    "_itunes_email": "buninra@mail.ru",
    "_itunes_categories_xml": "",
    "_itunes_image": "https:\/\/revealthedata.com\/blog\/pictures\/userpic\/userpic-square@2x.jpg?1612211172",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/revealthedata.com\/blog\/tags\/instrukciya\/",
    "feed_url": "https:\/\/revealthedata.com\/blog\/tags\/instrukciya\/json\/",
    "icon": "https:\/\/revealthedata.com\/blog\/pictures\/userpic\/userpic@2x.jpg?1612211172",
    "authors": [
        {
            "name": "Роман Бунин",
            "url": "https:\/\/revealthedata.com\/blog\/",
            "avatar": "https:\/\/revealthedata.com\/blog\/pictures\/userpic\/userpic@2x.jpg?1612211172"
        }
    ],
    "items": [
        {
            "id": "28",
            "url": "https:\/\/revealthedata.com\/blog\/all\/lolipop-chart\/",
            "title": "Лолипоп чарт с осью времени в Табло",
            "content_html": "<p>У Кати, одного из участников <a href=\"https:\/\/datalaboratory.ru\/course\/\">курса<\/a>, был вопрос — как сделать «лолипоп» чарт c временем по оси икс.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/1.jpg\" width=\"923\" height=\"431\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Что хотелось получить в итоге<\/div>\n<\/div>\n<p>У Кати были очень интересные <a href=\"http:\/\/www.tdcj.state.tx.us\/death_row\/dr_executed_offenders.html\">данные о смертных казнях в штате Техас<\/a>. Просто потрясающий набор с огромным количеством деталей вплоть до цвета волос и глаз заключенных, а так же их предсмертных речей.<\/p>\n<p>Данные хранились в CSV, когда открываешь их в Табло получается фигня:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/2.jpg\" width=\"990\" height=\"543\" alt=\"\" \/>\n<\/div>\n<p>Чтобы это исправить идём в настройки парсинга файла и выбираем в качестве разделителя запятую:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/3.jpg\" width=\"630\" height=\"275\" alt=\"\" \/>\n<\/div>\n<p>Раз и данные прочитались как надо:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/4.jpg\" width=\"1005\" height=\"603\" alt=\"\" \/>\n<\/div>\n<p>Кстати, сначала пошёл исправлять такое через Экслеь, но это не сработало. Эксель неправильно кушает эти данные из-за наличия запятых в предсмертной речи.<\/p>\n<p>В этой таблице даты хранятся в широком формате. Это не удобно, исправляем формат на длинный:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/5.jpg\" width=\"930\" height=\"505\" alt=\"\" \/>\n<\/div>\n<p>Подробнее про длинный и широкий формат <a href=\"http:\/\/revealthedata.com\/blog\/all\/table-reshape\/\">в этой статье<\/a>.<\/p>\n<p>После функции pivot наши даты разместились в двух столбцах с названиями Pivot Filed Values и Pivot Filed Names:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/6.jpg\" width=\"328\" height=\"309\" alt=\"\" \/>\n<\/div>\n<p>В Values хранятся значения дат, а в Names — тип даты (дата рождения, обвинения, взятия под страду и дата смертной казни). Переназовём поля в Date и Date type:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/8.jpg\" width=\"426\" height=\"316\" alt=\"\" \/>\n<\/div>\n<p>Такой формат данных очень удобен для табло. Но теперь задваиваются (точнее зачетвиряются =) ) строки:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/9.jpg\" width=\"961\" height=\"455\" alt=\"\" \/>\n<\/div>\n<p>Тогда когда мы будем подсчитывать кол-во смертников, складывать сумму лет проведенных в тюрьме и т. п. мы будем получать неверный результат. Чтобы этого избежать можно продублировать источник (надо было сделать заранее) и в одном источнике сделать pivot, а в другом нет. Тогда источник с pivot будем использовать только для визуализации lolipop, а другие для других графиков. Делается, например, здесь:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/10.jpg\" width=\"381\" height=\"397\" alt=\"\" \/>\n<\/div>\n<p>Вернемся к лолипопу. Расположим поля в области визуализации, чтобы получить точки лолипопа. Отфильтруем строки данных, для которых нет всех данных.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/12.jpg\" width=\"1065\" height=\"607\" alt=\"\" \/>\n<\/div>\n<p>Теперь нам надо добавить палочки между точками. Это делается довольно хитро. Для этого будем использовать визуальный атом в виде гант чарта. В отличии от обычных баров и засечек у этого визуального атома в Табло есть начало координат (где расположить бар на оси) и размер бара (его ширина).<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/11.jpg\" width=\"1055\" height=\"397\" alt=\"\" \/>\n<\/div>\n<p>Чтобы «закрасить» растояние между точками, создадим расчетное поле дублирующие даты и изменим ему тип данных на число с запятой. Это нужно чтобы мы потом могли применить к этому числу Quick Table Calculation, для дат его применять нельзя. Ещё надо перетащить копию дату в Measures.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/13.jpg\" width=\"564\" height=\"226\" alt=\"\" \/>\n<\/div>\n<p>Создадим ещё одну ось с датой и объединим её с предыдущей через dual axis:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/14.jpg\" width=\"913\" height=\"741\" alt=\"\" \/>\n<\/div>\n<p>Не забудем синхронизировать оси:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/15.jpg\" width=\"1021\" height=\"571\" alt=\"\" \/>\n<\/div>\n<p>Теперь зададим, чтобы размер наших меток ганчарта зависел от копии даты:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/16.jpg\" width=\"1063\" height=\"611\" alt=\"\" \/>\n<\/div>\n<p>Добавим быстрое Quick Table Calculation для подсчета разницы между точками.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/17.jpg\" width=\"807\" height=\"563\" alt=\"\" \/>\n<\/div>\n<p>Теперь настроим этот расчет:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/18.jpg\" width=\"639\" height=\"485\" alt=\"\" \/>\n<\/div>\n<p>Сделаем так, чтобы Табло рассчитывал разницу к предыдущей точке по дате для каждого типа даты:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/19.jpg\" width=\"1018\" height=\"606\" alt=\"\" \/>\n<\/div>\n<p>Теперь мы получили разницу между точками, но она откладывается вправо:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/20.jpg\" width=\"1048\" height=\"531\" alt=\"\" \/>\n<\/div>\n<p>Чтобы это исправить добавим в расчетное поле минус.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/21.jpg\" width=\"745\" height=\"570\" alt=\"\" \/>\n<\/div>\n<p>Вуаля! Подстроим размеры ганчарта и готово.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/22.jpg\" width=\"1064\" height=\"661\" alt=\"\" \/>\n<\/div>\n<p>На таком графике сразу видно много интересного:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/revealthedata.com\/blog\/pictures\/23.jpg\" width=\"743\" height=\"578\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2017-12-15T16:43:29+02:00",
            "date_modified": "2017-12-15T18:38:59+02:00",
            "tags": [
                "инструкция",
                "пример",
                "табло"
            ],
            "image": "https:\/\/revealthedata.com\/blog\/pictures\/1.jpg",
            "_date_published_rfc2822": "Fri, 15 Dec 2017 16:43:29 +0200",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "28",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/revealthedata.com\/blog\/pictures\/1.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/2.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/3.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/4.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/5.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/6.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/8.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/9.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/10.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/12.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/11.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/13.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/14.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/15.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/16.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/17.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/18.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/19.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/20.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/21.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/22.jpg",
                    "https:\/\/revealthedata.com\/blog\/pictures\/23.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4079,
    "_e2_ua_string": "Aegea 11.0 (v4079e)"
}