Облака слов и корпоративные чаты
Облако слов ☁️ (Word Cloud) — это визуализация, содержащая слова из некоторого набора данных, при этом размер шрифта прямо пропорционален частотности слова в наборе.
Про то, как делать и кастомизировать такие визуализации в Python, я писал в статье 'Облака слов в Python и Tableau'.
В статье есть код, и облака можно кастомизировать, меняя параметры. Можно использовать маску - изображение, по которому будет формироваться облако. В коде используется библиотека wordcloud. Если какие-то слова надо исключить из анализа (наречия, предлоги и др.), можно задавать список стоп-слов либо внешним .csv файлом, либо использовать библиотеки типа stop_words
На заглавном изображении снизу - часть проекта по визуализации всех слов известных 25 книг. Одна книга - одно облако.
В бизнес-дашбордах подобные визуализации лучше не использовать. Но есть интересные случаи, когда такие визуализации заходят бизнесу. На работе используем мессенджеры: Slack, Телеграм или другие, и рабочих каналов может быть больше сотни. Есть общие каналы и чаты, где общается почти вся компания. Раз в год, обычно под новый год делаю такие облака слов по общим чатам, использую лого компании в качестве маски. Саму визуализацию скидываем в общие чаты. Прикол таких визов в том, что они показывают чем жили сотрудники весь год, их боли и радости. Когда делаешь в высоком разрешении, интересно смотреть сочетания слов в таком облаке - часто попадаются перлы, максимально отражающие какое-либо событие или просто прикольные выражения. Чатики с нецензурной лексикой вызывают больший интерес 😊
А еще мы делали худи с облаком в логотипе компании. 🥼🥼🥼
Была мысль сделать облако по всему репозиторию аналитики: распарсить все .sql, .py файлы и напечатать визуализацию на футболках. Но есть риск, что в облаке будет чувствительная информация. Поэтому отказались от идеи. Пока 😎
Примеры облаков слов чатика датавиза в Телеге - сверху на картинке. Там облако в виде лого чата.
Облако слов ☁️ (Word Cloud) — это визуализация, содержащая слова из некоторого набора данных, при этом размер шрифта прямо пропорционален частотности слова в наборе.
Про то, как делать и кастомизировать такие визуализации в Python, я писал в статье 'Облака слов в Python и Tableau'.
В статье есть код, и облака можно кастомизировать, меняя параметры. Можно использовать маску - изображение, по которому будет формироваться облако. В коде используется библиотека wordcloud. Если какие-то слова надо исключить из анализа (наречия, предлоги и др.), можно задавать список стоп-слов либо внешним .csv файлом, либо использовать библиотеки типа stop_words
На заглавном изображении снизу - часть проекта по визуализации всех слов известных 25 книг. Одна книга - одно облако.
В бизнес-дашбордах подобные визуализации лучше не использовать. Но есть интересные случаи, когда такие визуализации заходят бизнесу. На работе используем мессенджеры: Slack, Телеграм или другие, и рабочих каналов может быть больше сотни. Есть общие каналы и чаты, где общается почти вся компания. Раз в год, обычно под новый год делаю такие облака слов по общим чатам, использую лого компании в качестве маски. Саму визуализацию скидываем в общие чаты. Прикол таких визов в том, что они показывают чем жили сотрудники весь год, их боли и радости. Когда делаешь в высоком разрешении, интересно смотреть сочетания слов в таком облаке - часто попадаются перлы, максимально отражающие какое-либо событие или просто прикольные выражения. Чатики с нецензурной лексикой вызывают больший интерес 😊
А еще мы делали худи с облаком в логотипе компании. 🥼🥼🥼
Была мысль сделать облако по всему репозиторию аналитики: распарсить все .sql, .py файлы и напечатать визуализацию на футболках. Но есть риск, что в облаке будет чувствительная информация. Поэтому отказались от идеи. Пока 😎
Примеры облаков слов чатика датавиза в Телеге - сверху на картинке. Там облако в виде лого чата.
В эти выходные в Монце, Италия прошел 16й этап Формулы 1. Удивительная победа Феррари и Шарля Леклера - сработала стратегия одного питстопа, хотя было очень рискованно. И Autodromo di Monza - всё-таки домашняя трасса Феррари. В автогонках далеко не все решает пилот - важен болид и команда, которая за ним стоит. Именно поэтому кроме личного зачета в F1 проводится кубок конструкторов. В этом году, после Монцы и 2/3 сезона, в кубке конструкторов уникальная ситуация - в лидерах по очкам 3 команды :Red Bull, McLaren и Ferrari. Mercedes пока отстает, но шансы на победу есть, хотя и маловероятные. Такого не было более 10и лет. Похожая ситуация была в 2012, позднее доминировали или Red Bull или Mercedes, который 7 лет подряд уходил в гигантский отрыв по очкам. Тем интереснее сейчас смотреть F1, поскольку явного фаворита по ходу сезона нет, победить может и McLaren c фантастической машиной, и Ferrari, не пропускавшая ни одного сезона F1, и Red Bull c Максом за штурвалом. Mercedes тоже не дает расслабиться соперникам.
Кубок конструкторов в Формуле 1 стартовал в далеком 1958 году. Первым чемпионом стала команда Vanwall.
В своей визуализации я собрал все данные F1 по кубкам конструкторов и представил их в виде графиков, где собираются очки команд за гонки. Подробнее о начислении очков можно почитать в правилах F1. Интересно, что общие суммы очков за уикенд могут различаться - иногда вводят дополнительные короткие гонки.
На графиках очень интересно наблюдать как выступают команды на разных трассах и в разных сезонах. В графиках скрыто много интересных паттернов - их прикольно искать. Вся история Формулы 1 умещается на одном листе, поэтому быстро можно сравнить разные сезоны. Сделал накопительные графики очков кубка конструкторов и процентные графики, отражающие долю накопленных очков каждой команды в гонке. В абсолютных видно как фавориты рвутся вверх, а в процентных фавориты отъедают свою долю от общего тотала очков. Поймал себя на мысли что графики классно отражают борьбу команд.
Надо сказать, что двигатель и болид могут собирать разные команды, поэтому нередка встречаются двойные названия типа Lotus-Climax или Brabham Repco. В кубке конструкторов отдельно есть списки победителей в категориях двигателей и шасси.
Кубок конструкторов в Формуле 1 стартовал в далеком 1958 году. Первым чемпионом стала команда Vanwall.
В своей визуализации я собрал все данные F1 по кубкам конструкторов и представил их в виде графиков, где собираются очки команд за гонки. Подробнее о начислении очков можно почитать в правилах F1. Интересно, что общие суммы очков за уикенд могут различаться - иногда вводят дополнительные короткие гонки.
На графиках очень интересно наблюдать как выступают команды на разных трассах и в разных сезонах. В графиках скрыто много интересных паттернов - их прикольно искать. Вся история Формулы 1 умещается на одном листе, поэтому быстро можно сравнить разные сезоны. Сделал накопительные графики очков кубка конструкторов и процентные графики, отражающие долю накопленных очков каждой команды в гонке. В абсолютных видно как фавориты рвутся вверх, а в процентных фавориты отъедают свою долю от общего тотала очков. Поймал себя на мысли что графики классно отражают борьбу команд.
Надо сказать, что двигатель и болид могут собирать разные команды, поэтому нередка встречаются двойные названия типа Lotus-Climax или Brabham Repco. В кубке конструкторов отдельно есть списки победителей в категориях двигателей и шасси.
Бэтмен и анимация полигонов
Бэтмену 85 лет исполнилось в этом году. Впервые он появился в мае 1939 года в комиксах. Вместе с Бэтменом эволюционировало и лого, одно из самых узнаваемых в мире.
В Tableau полигоны не анимируются, поэтому, было интересно создать анимированные полигоны.
Задача анимации полигонов не решается нативно, поэтому нужно было придумать другой путь. Основная идея - представить полигон в виде фигур, которые можно анимировать. В моём случае, это линии с переменной толщиной (что-то типа треугольников). Компьютерные 3D игры работают с полигонами (многоугольниками), которые состоят из треугольников. Из этих примитивов складываются сложные конструкции. Поэтому, идея анимации полигонов была в том, чтобы найти анимированные примитивы и из них построить лого.
Сначала надо было найти и собрать все лого Бэтмена как png файлы, потом построить контуры лого и найти координаты точек контуров. Сделал это при помощи Spotify Coordinator. Потом нужно было придумать как залить контуры. Здесь помогло множество линий, стягивающихся к центрам контуров. К центрам линии становятся толще - таким образом, они заливают контуры.
Полная статья опубликована как Guest Post в блоге Flerlage Twins. Там на гифах логика показана.
Идея визуализации заключалась в том, чтобы сделать то, что считалось невозможным. Просто интересно было как решить, и с геометрией поработать. И еще про эволюцию лого почитать - там много интересного.
Визуализация с анимацией 'Batman Logo Evolution'.
Бэтмену 85 лет исполнилось в этом году. Впервые он появился в мае 1939 года в комиксах. Вместе с Бэтменом эволюционировало и лого, одно из самых узнаваемых в мире.
В Tableau полигоны не анимируются, поэтому, было интересно создать анимированные полигоны.
Задача анимации полигонов не решается нативно, поэтому нужно было придумать другой путь. Основная идея - представить полигон в виде фигур, которые можно анимировать. В моём случае, это линии с переменной толщиной (что-то типа треугольников). Компьютерные 3D игры работают с полигонами (многоугольниками), которые состоят из треугольников. Из этих примитивов складываются сложные конструкции. Поэтому, идея анимации полигонов была в том, чтобы найти анимированные примитивы и из них построить лого.
Сначала надо было найти и собрать все лого Бэтмена как png файлы, потом построить контуры лого и найти координаты точек контуров. Сделал это при помощи Spotify Coordinator. Потом нужно было придумать как залить контуры. Здесь помогло множество линий, стягивающихся к центрам контуров. К центрам линии становятся толще - таким образом, они заливают контуры.
Полная статья опубликована как Guest Post в блоге Flerlage Twins. Там на гифах логика показана.
Идея визуализации заключалась в том, чтобы сделать то, что считалось невозможным. Просто интересно было как решить, и с геометрией поработать. И еще про эволюцию лого почитать - там много интересного.
Визуализация с анимацией 'Batman Logo Evolution'.
Scorigami и футбольные матчи за 150 лет
Буквально пару дней назад коллега и спортивный эксперт познакомил меня со словом 'Scorigami' (score + origami). Раньше не слышал такое слово. Оно тесно связано с американским футболом 🏈 (поэтому и не сталкивался наверное). Термин ввел Jon Bois в 2014. Scorigami сейчас - это счет, ранее не встречавшийся в спортивных играх. Scorigami board для NFL (National Football League) есть здесь. Еще в сабреддите r/Scorigami выкладывают матчи с уникальным счетом и скоригами бордом. Довольно интересно смотреть как такая доска заполняется по годам. Вся она не закрасится никогда, но каждый год какие-то ячейки закрашиваются. Это все похоже на игру.
Интересно было сделать подобные доски по другим спортам, прикинули примерно как они будут выглядеть для хоккея и баскетбола. Для классического футбола ⚽️ взял датасет с Kaggle 'International football results from 1872 to 2024'. В датасете более 47000 результатов футбольных матчей. Подробнее о том, какие матчи собраны в датасете, есть в его описании. Но смысл в том, что там международные матчи, без локальных лиг.
Визуализацию сделал немного по-другому, не как доска Скоригами, а с разделением на домашние и выездные матчи.
Интересны крайности. Это счет 31-0, Австралия - Американское Самоа, 2002 год. Видео матча.
0 - 21 Матч Гуам - Северная Корея, 2005г. Те самые знаменитые северокорейские футболисты 🙃 . Про этот матч.
В визе также есть проценты каждого исхода (вероятности исходов), в вероятностях тоже много инсайтов можно найти. В визуализации есть отдельный барчарт тоталов (сумм очков за матч).
Из интересного:
- 30% матчей проходят на нейтральных площадках, добавлю фильтр на это.
- Вероятность счета 1:0,0:1 в 2 раза выше вероятности счета 0:0.
- В настоящее время тоталы меньше, чем были раньше.
Пока интерактив не делал, но есть что прикрутить, поэтому добавлю турниры, страны, сделаю возможность выбора логарифмической шкалы для заливки. Еще добавлю слайдер дат, чтобы по годам можно было смотреть как заполняется виз. Ну и переключение на классическую доску Скоригами лишним не будет. Наверное добавлю возможность смотреть 10 последних турниров для каждого исхода.
Для NBA 🏀 сделал также похожий виз, благо данных по NBA много, и давно работаю с ними. Но там совершенно другая картина. Буду на выходных дорабатывать, в следующем посте расскажу.
Буквально пару дней назад коллега и спортивный эксперт познакомил меня со словом 'Scorigami' (score + origami). Раньше не слышал такое слово. Оно тесно связано с американским футболом 🏈 (поэтому и не сталкивался наверное). Термин ввел Jon Bois в 2014. Scorigami сейчас - это счет, ранее не встречавшийся в спортивных играх. Scorigami board для NFL (National Football League) есть здесь. Еще в сабреддите r/Scorigami выкладывают матчи с уникальным счетом и скоригами бордом. Довольно интересно смотреть как такая доска заполняется по годам. Вся она не закрасится никогда, но каждый год какие-то ячейки закрашиваются. Это все похоже на игру.
Интересно было сделать подобные доски по другим спортам, прикинули примерно как они будут выглядеть для хоккея и баскетбола. Для классического футбола ⚽️ взял датасет с Kaggle 'International football results from 1872 to 2024'. В датасете более 47000 результатов футбольных матчей. Подробнее о том, какие матчи собраны в датасете, есть в его описании. Но смысл в том, что там международные матчи, без локальных лиг.
Визуализацию сделал немного по-другому, не как доска Скоригами, а с разделением на домашние и выездные матчи.
Интересны крайности. Это счет 31-0, Австралия - Американское Самоа, 2002 год. Видео матча.
0 - 21 Матч Гуам - Северная Корея, 2005г. Те самые знаменитые северокорейские футболисты 🙃 . Про этот матч.
В визе также есть проценты каждого исхода (вероятности исходов), в вероятностях тоже много инсайтов можно найти. В визуализации есть отдельный барчарт тоталов (сумм очков за матч).
Из интересного:
- 30% матчей проходят на нейтральных площадках, добавлю фильтр на это.
- Вероятность счета 1:0,0:1 в 2 раза выше вероятности счета 0:0.
- В настоящее время тоталы меньше, чем были раньше.
Пока интерактив не делал, но есть что прикрутить, поэтому добавлю турниры, страны, сделаю возможность выбора логарифмической шкалы для заливки. Еще добавлю слайдер дат, чтобы по годам можно было смотреть как заполняется виз. Ну и переключение на классическую доску Скоригами лишним не будет. Наверное добавлю возможность смотреть 10 последних турниров для каждого исхода.
Для NBA 🏀 сделал также похожий виз, благо данных по NBA много, и давно работаю с ними. Но там совершенно другая картина. Буду на выходных дорабатывать, в следующем посте расскажу.
Scorigami и NBA.
Сегодня логическое продолжение прошлого поста о Scorigami. Но, в этот раз, про NBA.
Футбольный виз из прошлого поста усовершенствовал, добавил фильтры, переключение досок и логарифмическую шкалу. Пришло время баскетбола. Тем более, что следующий сезон NBA стартует ровно через месяц.
Виз Scorigami NBA здесь.
В баскетболе количество уникальных сочетаний очков намного больше других игровых видов спорта, поэтому, представлять в виде таблицы показалось нелогичным - сделал диаграмму разброса с дискретными значениями. Cути это не меняет - на визуализации закрашиваем уникальные сочетания финальных очков матчей.
В датасете - все игры NBA с 1946 года. На диаграмме закрашенные ячейки напоминают пиксели. Сделал переключение досок с Win/Lost на Home/Visitor. Соответственно, в первом случае, по осям берутся очки выигравших и проигравших команд, а во втором случае, - домашних и выездных матчей. В первом случае счет 104:107 и 107:104 считаются одной комбинацией, а во втором - двумя.
Дополнительно есть еще графики уникальных результатов по годам и по годам накопительно - там интересно наблюдать сокращение уникальных результатов по годам и насыщение накопительного графика.
Отдельно стоит отметить реализацию накопительного COUNT DISTINCT в Tableau. Функции RUNNING_COUNTD нет, поэтому, пришлось искать решение комбинацией нативных функций. Смысл в том, чтобы посчитать уникальные результаты матчей по годам, но, если уник встречался в прошлом периоде, его учитывать не надо. Нормальная задачка на лоды/табличные вычисления - есть несколько способов реализации.
Что интересно.
🏀 Пока еще не было года без Scorigami (уникального счета)
🏀 Минимальный, но спорный счет в NBA (0:2) Результаты матча спорные, не включал его.
🏀 Минимальный счет в NBA (19:18) Minneapolis Lakers - Fortwayne Pistons в 1950г.
По минимальные результаты еще здесь можно почитать.
🏀 Максимальный счет в NBA (186:184) Денвер - Детроит в 1983г.
🏀 Счет 108:101 встречается 170 раз, это самый частотный результат.
🏀 В матче Индианы - Портленда в 1998г со счетом 124:50 отношение очков 2.1 - самое высокое за всю историю.
Интересно было посмотреть эволюцию диаграммы по годам. Поэтому сделал контрол для просмотра накопленных данных, сохранил покадрово в GIF. Такие короткие видео нравятся и хорошо заходят народу.
Переключать параметры, фильтры и сохранять много картинок - так себе занятие, поэтому, использую скрипты. Вот здесь писал про это.
Итого: Получились Scorigami доски и графики уникальных результатов с фильтрациями по командам, годам, матчам с овертаймами. В тултипы еще матчи в хронологическом порядке добавил - тоже прикольно посмотреть когда и какие команды с одинаковыми результатами сыграли.
Сегодня логическое продолжение прошлого поста о Scorigami. Но, в этот раз, про NBA.
Футбольный виз из прошлого поста усовершенствовал, добавил фильтры, переключение досок и логарифмическую шкалу. Пришло время баскетбола. Тем более, что следующий сезон NBA стартует ровно через месяц.
Виз Scorigami NBA здесь.
В баскетболе количество уникальных сочетаний очков намного больше других игровых видов спорта, поэтому, представлять в виде таблицы показалось нелогичным - сделал диаграмму разброса с дискретными значениями. Cути это не меняет - на визуализации закрашиваем уникальные сочетания финальных очков матчей.
В датасете - все игры NBA с 1946 года. На диаграмме закрашенные ячейки напоминают пиксели. Сделал переключение досок с Win/Lost на Home/Visitor. Соответственно, в первом случае, по осям берутся очки выигравших и проигравших команд, а во втором случае, - домашних и выездных матчей. В первом случае счет 104:107 и 107:104 считаются одной комбинацией, а во втором - двумя.
Дополнительно есть еще графики уникальных результатов по годам и по годам накопительно - там интересно наблюдать сокращение уникальных результатов по годам и насыщение накопительного графика.
Отдельно стоит отметить реализацию накопительного COUNT DISTINCT в Tableau. Функции RUNNING_COUNTD нет, поэтому, пришлось искать решение комбинацией нативных функций. Смысл в том, чтобы посчитать уникальные результаты матчей по годам, но, если уник встречался в прошлом периоде, его учитывать не надо. Нормальная задачка на лоды/табличные вычисления - есть несколько способов реализации.
Что интересно.
🏀 Пока еще не было года без Scorigami (уникального счета)
🏀 Минимальный, но спорный счет в NBA (0:2) Результаты матча спорные, не включал его.
🏀 Минимальный счет в NBA (19:18) Minneapolis Lakers - Fortwayne Pistons в 1950г.
По минимальные результаты еще здесь можно почитать.
🏀 Максимальный счет в NBA (186:184) Денвер - Детроит в 1983г.
🏀 Счет 108:101 встречается 170 раз, это самый частотный результат.
🏀 В матче Индианы - Портленда в 1998г со счетом 124:50 отношение очков 2.1 - самое высокое за всю историю.
Интересно было посмотреть эволюцию диаграммы по годам. Поэтому сделал контрол для просмотра накопленных данных, сохранил покадрово в GIF. Такие короткие видео нравятся и хорошо заходят народу.
Переключать параметры, фильтры и сохранять много картинок - так себе занятие, поэтому, использую скрипты. Вот здесь писал про это.
Итого: Получились Scorigami доски и графики уникальных результатов с фильтрациями по командам, годам, матчам с овертаймами. В тултипы еще матчи в хронологическом порядке добавил - тоже прикольно посмотреть когда и какие команды с одинаковыми результатами сыграли.
Фамилии и цвета
В книге "История цвета. Как краски изменили наш мир" ( на английском) есть параграф о наиболее распространенных "цветных" фамилиях. Речь про фамилии Brown, White, Green и подобных. Согласно источнику, популярные по убыванию фамилии: Brown, White, Greem, Gray, Black, Scarlet, Blue. С красным проблема - людей с фамилией Red мало, но есть фамилии Reed и Reid - они тоже обозначают 'красный', но в старом английском и шотландском языках. Если объединить эти фамилии, то красный будет на 4м месте.
Интересно было проверить это и найти процент каждого цвета во всех "цветных" фамилиях. Датасет с именами и фамилиями людей - это персданные, но люди сами пишут свои имена и фамилии в соцсетях, поэтому можно по данным соцсетей посчитать частотность фамилий. Такой датасет есть на kaggle, там уникальные фамилии пользователей Facebook на английском и число пользователей напротив каждой фамилии. Какой-то специалист по безопасности собрал данные 138 млн пользователей. Датасету 5 лет, но процент фамилий значительно не поменяется, если собрать подобные данные сейчас.
Из всех 138 миллионов обнаружилось 1,295 млн "цветных" английских фамилий. Проблема еще была в том, что один цвет могут означать несколько фамилий. Например, green и greene. Это связано со старыми написаниями фамилий. Поэтому пришлось поискать фамилии, обозначающие один цвет, и сгруппировать их. Есть еще фамилии - "отенки", например, Maroon, Crimson. Их мало, Поэтому не включал в виз. Барчарт сделан по основным цветам, добавлены gold, silver - это тоже цвета в английском.
В итоге, более трети людей с фамилией Brown, а вот Yellow - только 25 человек, это 0,002% от всех людей с "цветными" фамилиями. Желтый в Англии считался цветом трусости - отсюда такой процент. Интересно, что в Китае желтый - цвет Солнца и императора, там фамилия Huang (Желтый) входит в десятку самых популярных фамилий.
Порядок топ цветов совпал со статьей из книги.
В книге "История цвета. Как краски изменили наш мир" ( на английском) есть параграф о наиболее распространенных "цветных" фамилиях. Речь про фамилии Brown, White, Green и подобных. Согласно источнику, популярные по убыванию фамилии: Brown, White, Greem, Gray, Black, Scarlet, Blue. С красным проблема - людей с фамилией Red мало, но есть фамилии Reed и Reid - они тоже обозначают 'красный', но в старом английском и шотландском языках. Если объединить эти фамилии, то красный будет на 4м месте.
Интересно было проверить это и найти процент каждого цвета во всех "цветных" фамилиях. Датасет с именами и фамилиями людей - это персданные, но люди сами пишут свои имена и фамилии в соцсетях, поэтому можно по данным соцсетей посчитать частотность фамилий. Такой датасет есть на kaggle, там уникальные фамилии пользователей Facebook на английском и число пользователей напротив каждой фамилии. Какой-то специалист по безопасности собрал данные 138 млн пользователей. Датасету 5 лет, но процент фамилий значительно не поменяется, если собрать подобные данные сейчас.
Из всех 138 миллионов обнаружилось 1,295 млн "цветных" английских фамилий. Проблема еще была в том, что один цвет могут означать несколько фамилий. Например, green и greene. Это связано со старыми написаниями фамилий. Поэтому пришлось поискать фамилии, обозначающие один цвет, и сгруппировать их. Есть еще фамилии - "отенки", например, Maroon, Crimson. Их мало, Поэтому не включал в виз. Барчарт сделан по основным цветам, добавлены gold, silver - это тоже цвета в английском.
В итоге, более трети людей с фамилией Brown, а вот Yellow - только 25 человек, это 0,002% от всех людей с "цветными" фамилиями. Желтый в Англии считался цветом трусости - отсюда такой процент. Интересно, что в Китае желтый - цвет Солнца и императора, там фамилия Huang (Желтый) входит в десятку самых популярных фамилий.
Порядок топ цветов совпал со статьей из книги.
Геоданные и батиметрия
Геоданные в мире данных занимают особое место. Прелесть геоданных в том, что визуализации часто получаются информативными и красивыми. Есть много сервисов для работы с гео, например:
🌍 Google Maps Engine. Google Earth. С этими инструментами больше 10 лет работал, но Гугл закрыл Maps Engine. А был довольно полезным сервисом. Карты гугла известны всем, но на старте это был прорыв, и не верилось что можно отснять всю Землю.
🌍 QGis. Инструмент работы с геоданными. Оупенсорс, может много всего, особенно преобразования шеоданных интересны.
🌍 Mapbox - прекрасный онлайн инструмент создания карт и загрузки слоев с данными. Все это потом можно интегрировать в приложения или на сайты.
🌍 kepler.gl от Uber позволяет визуализировать в вебе, но весь процесс обработки - на локальной машине. Красивые штуки можно делать.
Для геоданных придумали свои форматы, и их довольно много. Например, .shp, .kmp, geojson и другие.
Один из форматов - шейп-файл .shp. Он позволяет хранить точки, линии, полигоны и другие объекты. Один .shp файл содержит объекты одного типа. Данные в этом формате встречаются часто. Большую статью по Картам высот и глубин я опубликовал на своем сайте.
Батиметрия изучает рельеф дна водоемов. Для сбора данных о рельефе дна применяют батиметрическую съемку, а карты глубин называют батиметрическими. Хотел найти данные по глубинам Байкала, но в открытом доступе их не было. Нашел данные глубин Великих озер на сайте NOAA(National Centers of Enviromental Information). Великие озера - самая большая группа пресноводных озер на планете. Сюда входят озера: Верхнее, Мичиган, Гурон, Эри, Онтарио и Сент-Клэр. На сайте доступны данные высокого разрешения в формате .shp.
Дальше загрузил данные в Tableau. В данных - батиметрические контуры глубин. Такие контуры на картах называют изобатами, они описывают одинаковые глубины с некоторым шагом. Сделал всю визуализацию 'How deep are the Great Lakes' в виде плаката с легендами, характеристиками и небольшим описанием. Карту Великих озер можно зумить и изучать участки озер. Подложка карт от mapbox.
Получилось симпатично.
Эту работу периодически упоминают на ресурсах по визуализации или картам.
На vividmaps: Great Lakes Profile
На visualcapitalist: Visualizing the Depth of the Great Lakes
Геоданные в мире данных занимают особое место. Прелесть геоданных в том, что визуализации часто получаются информативными и красивыми. Есть много сервисов для работы с гео, например:
🌍 Google Maps Engine. Google Earth. С этими инструментами больше 10 лет работал, но Гугл закрыл Maps Engine. А был довольно полезным сервисом. Карты гугла известны всем, но на старте это был прорыв, и не верилось что можно отснять всю Землю.
🌍 QGis. Инструмент работы с геоданными. Оупенсорс, может много всего, особенно преобразования шеоданных интересны.
🌍 Mapbox - прекрасный онлайн инструмент создания карт и загрузки слоев с данными. Все это потом можно интегрировать в приложения или на сайты.
🌍 kepler.gl от Uber позволяет визуализировать в вебе, но весь процесс обработки - на локальной машине. Красивые штуки можно делать.
Для геоданных придумали свои форматы, и их довольно много. Например, .shp, .kmp, geojson и другие.
Один из форматов - шейп-файл .shp. Он позволяет хранить точки, линии, полигоны и другие объекты. Один .shp файл содержит объекты одного типа. Данные в этом формате встречаются часто. Большую статью по Картам высот и глубин я опубликовал на своем сайте.
Батиметрия изучает рельеф дна водоемов. Для сбора данных о рельефе дна применяют батиметрическую съемку, а карты глубин называют батиметрическими. Хотел найти данные по глубинам Байкала, но в открытом доступе их не было. Нашел данные глубин Великих озер на сайте NOAA(National Centers of Enviromental Information). Великие озера - самая большая группа пресноводных озер на планете. Сюда входят озера: Верхнее, Мичиган, Гурон, Эри, Онтарио и Сент-Клэр. На сайте доступны данные высокого разрешения в формате .shp.
Дальше загрузил данные в Tableau. В данных - батиметрические контуры глубин. Такие контуры на картах называют изобатами, они описывают одинаковые глубины с некоторым шагом. Сделал всю визуализацию 'How deep are the Great Lakes' в виде плаката с легендами, характеристиками и небольшим описанием. Карту Великих озер можно зумить и изучать участки озер. Подложка карт от mapbox.
Получилось симпатично.
Эту работу периодически упоминают на ресурсах по визуализации или картам.
На vividmaps: Great Lakes Profile
На visualcapitalist: Visualizing the Depth of the Great Lakes
Автомобили в фильмах и парсинг 2млн страниц
Профилю на Kaggle почти 5 лет. Обычно беру датасеты оттуда, но сам ничего не публикую. Надо менять ситуацию, тем более что накопилось много всего (датасеты, ноутбуки), что будет полезно кагглерам.
Выложил первый датасет 'Cars, Trucks, Bikes, Buses in Movies (1900-2024)'. Там больше 1,75 миллионов записей и 21 поле.
Есть такой сайт imcdb.org (Internet Movie Cars Database). Там собирают кадры с транспортными средствами из фильмов, определяют марки, модели и т.д. 20 лет существует. По сути это самая большая база данных машин, снявшихся в фильмах. Здесь в википедии про IMCDb.
Написал парсер, который проходится по всем страницам сайта, их около 2х миллионов, и собирает данные в .csv. Парсер работал 1 неделю в 4 потока. В итоге собралось несколько .csv, которые потом объединил юнионом. Из неприятного - при парсинге не учел, что разные люди вводят данные, и они могут быть в разных форматах. Например, время в кадре автомобиля записывают как 00:02:35, 0:25:35, 25:35, 0-25-35, 25-35 и в других форматах. Пришлось еще искать несоответствия и допиливать датасет скриптами. Получилось вполне ок.
Выложил данные на Kaggle, описал датасет и поля. Можно скачивать и пользоваться. Надо только понимать, что все вводилось вручную, есть модерация и удаление дубликатов, но все равно есть вероятность несоответствий.
В данных есть ссылки на кадры из фильмов с конкретным транспортным средством (там кроме машин 🚙 еще мотоциклы 🏍, грузовики 🚛, бульдозеры 🚜, лесовозы 🚚 и еще много чего). Есть названия транспортных средств, года выпуска, типы (кабриолет, седан, хетчбек и т.п.). Каждое транспортное средство связано с фильмом и кадром где оно появлялось. IMDb id и ссылки на сайт imdb.com (база фильмов самая известная, наверное) позволяют джойнить с датасетами фильмов, включая имена актеров, режиссеров и т.д. То есть, можно ответить на вопросы типа:
- 'Какие топ марки машин есть в фильмах Тарантино?',
- 'Сколько раз встречается Газ-24 в фильмах Рязанова?',
- 'Какой процент румынских машин в румынских фильмах?',
- "Самое популярное авто в ужастиках?",
- "В каком фильме встречаются Феррари F-40 и 'Запорожец' ЗАЗ-966?"
Автомобиль в фильмах часто играет одну из главных ролей. Это:
- '982 De Lorean DMC 12'
- говорящая машина Рыцаря Дорог '1979 Chevrolet Chevette',
- '1965 Lamborghini 350 GT' в истории о Тонино Ламборгини, и
- '1971 Lincoln Continental Mark III Barris Kustoms [89-65A]' из 'The Car', и
- '1959 Cadillac Ambulance Miller-Meteor Sentinel 'Ecto-1'' охотников за приведениями,
- '2007 Chevrolet Camaro Replica 'Bumblebee' из 'Трансформеров'
и много других - это целая вселенная. И почему бы не соединить вселенную машин-актеров и вселенную людей актеров? Получается круто. Для обучения намного интереснее синтетических датасетов без эмоциональной окраски.
Много экзотики можно накопать из любимых фильмов.
- '1957 ATZ TDT-60' из "Девчат" (Название на английском 'The Girls' заставляет улыбнуться)
- 'KhAZ SPT-104' из 'Иронии судьбы'
- '1940 Chevrolet G-7107 Cargo [G-506]' из 'Семнадцати мгновений весны'.
Итого: дофига инсайтов прикольных можно вытащить. Примеры визуализаций в комменты покидаю.
Профилю на Kaggle почти 5 лет. Обычно беру датасеты оттуда, но сам ничего не публикую. Надо менять ситуацию, тем более что накопилось много всего (датасеты, ноутбуки), что будет полезно кагглерам.
Выложил первый датасет 'Cars, Trucks, Bikes, Buses in Movies (1900-2024)'. Там больше 1,75 миллионов записей и 21 поле.
Есть такой сайт imcdb.org (Internet Movie Cars Database). Там собирают кадры с транспортными средствами из фильмов, определяют марки, модели и т.д. 20 лет существует. По сути это самая большая база данных машин, снявшихся в фильмах. Здесь в википедии про IMCDb.
Написал парсер, который проходится по всем страницам сайта, их около 2х миллионов, и собирает данные в .csv. Парсер работал 1 неделю в 4 потока. В итоге собралось несколько .csv, которые потом объединил юнионом. Из неприятного - при парсинге не учел, что разные люди вводят данные, и они могут быть в разных форматах. Например, время в кадре автомобиля записывают как 00:02:35, 0:25:35, 25:35, 0-25-35, 25-35 и в других форматах. Пришлось еще искать несоответствия и допиливать датасет скриптами. Получилось вполне ок.
Выложил данные на Kaggle, описал датасет и поля. Можно скачивать и пользоваться. Надо только понимать, что все вводилось вручную, есть модерация и удаление дубликатов, но все равно есть вероятность несоответствий.
В данных есть ссылки на кадры из фильмов с конкретным транспортным средством (там кроме машин 🚙 еще мотоциклы 🏍, грузовики 🚛, бульдозеры 🚜, лесовозы 🚚 и еще много чего). Есть названия транспортных средств, года выпуска, типы (кабриолет, седан, хетчбек и т.п.). Каждое транспортное средство связано с фильмом и кадром где оно появлялось. IMDb id и ссылки на сайт imdb.com (база фильмов самая известная, наверное) позволяют джойнить с датасетами фильмов, включая имена актеров, режиссеров и т.д. То есть, можно ответить на вопросы типа:
- 'Какие топ марки машин есть в фильмах Тарантино?',
- 'Сколько раз встречается Газ-24 в фильмах Рязанова?',
- 'Какой процент румынских машин в румынских фильмах?',
- "Самое популярное авто в ужастиках?",
- "В каком фильме встречаются Феррари F-40 и 'Запорожец' ЗАЗ-966?"
Автомобиль в фильмах часто играет одну из главных ролей. Это:
- '982 De Lorean DMC 12'
- говорящая машина Рыцаря Дорог '1979 Chevrolet Chevette',
- '1965 Lamborghini 350 GT' в истории о Тонино Ламборгини, и
- '1971 Lincoln Continental Mark III Barris Kustoms [89-65A]' из 'The Car', и
- '1959 Cadillac Ambulance Miller-Meteor Sentinel 'Ecto-1'' охотников за приведениями,
- '2007 Chevrolet Camaro Replica 'Bumblebee' из 'Трансформеров'
и много других - это целая вселенная. И почему бы не соединить вселенную машин-актеров и вселенную людей актеров? Получается круто. Для обучения намного интереснее синтетических датасетов без эмоциональной окраски.
Много экзотики можно накопать из любимых фильмов.
- '1957 ATZ TDT-60' из "Девчат" (Название на английском 'The Girls' заставляет улыбнуться)
- 'KhAZ SPT-104' из 'Иронии судьбы'
- '1940 Chevrolet G-7107 Cargo [G-506]' из 'Семнадцати мгновений весны'.
Итого: дофига инсайтов прикольных можно вытащить. Примеры визуализаций в комменты покидаю.
20 лет эволюции смартфонов и анализ трендов
Нашел сaйт phonedb.net. Написано что это самая большая база мобильных телефонов с их характеристиками. 'The Largest Phone Specs Database'.
Решил посмотреть что там есть. В итоге, собрал данные по всем устройствам в один .csv. Парсинг по id устройства, поиск таблиц, их анпивот и запись в .csv.
Получилось 23843 записи и 287 полей. Характеристик действительно много, но много и пустых значений. Из них 20089 смартфонов (390 брендов), 2371 планшет (136 брендов). Остальное - PDA, смартчасы, ноуты и подобные устройства, которых так мало, что даже нет смысла их смотреть. В смартфонах именно смартфоны, а не все мобильные телефоны.
20089 телефонов - вполне ок выборка для поиска трендов или инсайтов. Планшетов почти в 10 раз меньше, но сравнить их характеристики с телефонными тоже интересно. Из 278 полей реально интересно посмотреть только 10-20 характеристик (остальные - слишком специфичные: cтандарты приемников, типы вспышек и пр.) и рынки распространения телефонов. По телефонам более-менее репрезентативные данные начинаются с 2001 года, по планшетам - с 2010го.
Возьмем самые простые и понятные характеристики:
- Емкость батареи
- Разрешение камеры
- Диагональ дисплея
- Разрешение экрана
- Плотность пикселей на дюйм (PPI)
- Частота процессора (MHz)
- Габариты
- Масса
- Время разговора (Talk Time, h)
- Время в ожидании (Standby Time, h)
- Цена. Есть с 2019 года только, поэтому, на небольшом отрезке времени только можно посмотреть.
Разрезы:
- Бренд,
- Операционная система,
- Устройство (планшет или телефон)
Есть месяц и год релиза, поэтому, можно проследить динамику метрик. Интересно посмотреть как поменялись метрики за столько лет.
В комментариях - помесячная динамика по нескольким метрикам. Там средние значения. Сезонность релизов можно скользящим средним срезать.
Итого по смартфонам динамика за 24 года:
- Толщина упала в 2 раза
- Частота процессора выросла в 25 раз
- Диагональ дисплея выросла в 2 раза
- Емкость батареи выросла в 5 раз
- Высота выросла в 1,5 раза
- Мегапиксели камер выросли в 200 раз
- PPI - рост в 4 раза
- Время разговора выросло в 12 раз
- Время в режиме ожидания выросло в 2 раза
- Масса сильно не изменилась, но была просадка в середине периода
Интересно, что в январе и феврале релизы ощутимо падают.
Мегапиксели камер с 2019 года просто улетели в космос. У планшетов угол тренда не поменялся.
Скаттеры интересные получаются с разыми метриками и разрезами. А ещё - чем больше кнопок, тем тяжелее телефон!
Хотел выложить датасет куда-нибудь, поискал раздел лицензий на сайте. Там надо писать письмо, если хочешь данные получить, и перечислить поля. Есть еще цены. Поэтому, скрипт и датасет решил не выкладывать.
И вот сейчас думаю нарушил я что-то или нет )) Вроде, не должен, но хз как проверить. Использовал в некоммерческих обучающих целях. Персданных нет. Характеристики устройств и их фото - точно не собственность разработчиков сайта. База открыта.
Нашел сaйт phonedb.net. Написано что это самая большая база мобильных телефонов с их характеристиками. 'The Largest Phone Specs Database'.
Решил посмотреть что там есть. В итоге, собрал данные по всем устройствам в один .csv. Парсинг по id устройства, поиск таблиц, их анпивот и запись в .csv.
Получилось 23843 записи и 287 полей. Характеристик действительно много, но много и пустых значений. Из них 20089 смартфонов (390 брендов), 2371 планшет (136 брендов). Остальное - PDA, смартчасы, ноуты и подобные устройства, которых так мало, что даже нет смысла их смотреть. В смартфонах именно смартфоны, а не все мобильные телефоны.
20089 телефонов - вполне ок выборка для поиска трендов или инсайтов. Планшетов почти в 10 раз меньше, но сравнить их характеристики с телефонными тоже интересно. Из 278 полей реально интересно посмотреть только 10-20 характеристик (остальные - слишком специфичные: cтандарты приемников, типы вспышек и пр.) и рынки распространения телефонов. По телефонам более-менее репрезентативные данные начинаются с 2001 года, по планшетам - с 2010го.
Возьмем самые простые и понятные характеристики:
- Емкость батареи
- Разрешение камеры
- Диагональ дисплея
- Разрешение экрана
- Плотность пикселей на дюйм (PPI)
- Частота процессора (MHz)
- Габариты
- Масса
- Время разговора (Talk Time, h)
- Время в ожидании (Standby Time, h)
- Цена. Есть с 2019 года только, поэтому, на небольшом отрезке времени только можно посмотреть.
Разрезы:
- Бренд,
- Операционная система,
- Устройство (планшет или телефон)
Есть месяц и год релиза, поэтому, можно проследить динамику метрик. Интересно посмотреть как поменялись метрики за столько лет.
В комментариях - помесячная динамика по нескольким метрикам. Там средние значения. Сезонность релизов можно скользящим средним срезать.
Итого по смартфонам динамика за 24 года:
- Толщина упала в 2 раза
- Частота процессора выросла в 25 раз
- Диагональ дисплея выросла в 2 раза
- Емкость батареи выросла в 5 раз
- Высота выросла в 1,5 раза
- Мегапиксели камер выросли в 200 раз
- PPI - рост в 4 раза
- Время разговора выросло в 12 раз
- Время в режиме ожидания выросло в 2 раза
- Масса сильно не изменилась, но была просадка в середине периода
Интересно, что в январе и феврале релизы ощутимо падают.
Мегапиксели камер с 2019 года просто улетели в космос. У планшетов угол тренда не поменялся.
Скаттеры интересные получаются с разыми метриками и разрезами. А ещё - чем больше кнопок, тем тяжелее телефон!
Хотел выложить датасет куда-нибудь, поискал раздел лицензий на сайте. Там надо писать письмо, если хочешь данные получить, и перечислить поля. Есть еще цены. Поэтому, скрипт и датасет решил не выкладывать.
И вот сейчас думаю нарушил я что-то или нет )) Вроде, не должен, но хз как проверить. Использовал в некоммерческих обучающих целях. Персданных нет. Характеристики устройств и их фото - точно не собственность разработчиков сайта. База открыта.
Актеры без оскаров и bar chART потреты
Бар чарты и другие диаграммы можно использовать не только для отображения бизнес-метрик. При помощи диаграмм можно рисовать.
Любое цифровое изображение раскладывается в набор пикселей. Если для каждого пикселя вычислить его яркость и построить семейство бар-чартов, каждый из которых отображает уровень яркости, то получится изображение, но представленное бар-чартами. Эту идею я взял из блога Elana Levin Schtulberg, Datawrapper. В статье используется Processing для сбора данных и Datawrapper для визуализаций. Идею я реализовал в Python и Tableau. Про весь процесс создания таких изображений написал статью: 'Bar Chart портреты в Tableau'.
Сама визуализация в Tableau: 'Известные актеры и актрисы без оскаров'
Там 10 портретов и 4 типа визуализации.
Процесс создания портрета состоит из шагов:
1. Получение изображений нужного разрешения. От разрешения будет зависеть шаг сетки, в которой будем строить бары.
2. Получение значений яркости для каждого пикселя. Если нужно цветное изображение, то нужно получить цвет каждого пикселя.
3. Создание датасета, в котором есть id каждого пикселя, его координаты, яркость и цвет
4. Подключение датасета к среде визуализации
5. Сама визуализация.
Все это можно делать в удобных для себя инструментах (js, R, python, processing и т.п.). У меня это Питон, библиотека обработки изображений Pillow для создания датасета, Tableau для визуализаций.
После того как будет готов датасет, можно строить визуализации. Для бар-чартов надо построить сетку X x Y, где X и Y делят пространство на ячейки, внутри которых рисуем бар-чарты. Потом можно экспериментировать с направлением баров (вертикальное или горизонтальное), шириной, цветом и т.д. В сочетании 'bar chART' есть слово 'ART', и это неслучайно 🙂.
За параметр длины бара берется величина 255 - [Brightness]. То есть, длина бара определяет степень затемнения ячейки. 255 - максимальное значение яркости.
Кроме баров можно использовать круги с переменным диаметром. Тогда получится диаграмма разброса (Scatter Plot). Можно использовать квадраты, ромбы, звезды и другие шейпы (флаги стран, лого компаний и т.п.). Отдельным типом диаграмм будет диаграмма Ганнта, для которой можно настраивать точку в ячейке, от которой будем заполнять ячейки.
Прикольное что делал таким способом:
1. Портрет из лого компании.
2. Портрет из портретов. То есть, в качестве шейпа используем сам портрет из которого формируем конечное изображение. Шейп только надо немного доработать.
В Tableau работает анимация - портреты плавно перетекают из одного изображения в другое. Меняются размеры баров, шейпов и других Marks одновременно. Это довольно интересно наблюдать. Есть проблема с классическими барами - они не анимируются. Связано это с тем, что за последние 2-3 года сильно урезали возможность анимации. Раньше все работало нормально, сейчас приходится немного потанцевать с бубном.
В визуализацию добавил возможность изменения яркости изображения. То есть, просто есть некоторый коэффициент, на который домножаются значения яркости всех пикселей, при этом, меняется яркость.
Сам конечный портрет представляет собой семейство бар-чартов, где каждый бар показывает степень яркости пикселя изображения.
Бар чарты и другие диаграммы можно использовать не только для отображения бизнес-метрик. При помощи диаграмм можно рисовать.
Любое цифровое изображение раскладывается в набор пикселей. Если для каждого пикселя вычислить его яркость и построить семейство бар-чартов, каждый из которых отображает уровень яркости, то получится изображение, но представленное бар-чартами. Эту идею я взял из блога Elana Levin Schtulberg, Datawrapper. В статье используется Processing для сбора данных и Datawrapper для визуализаций. Идею я реализовал в Python и Tableau. Про весь процесс создания таких изображений написал статью: 'Bar Chart портреты в Tableau'.
Сама визуализация в Tableau: 'Известные актеры и актрисы без оскаров'
Там 10 портретов и 4 типа визуализации.
Процесс создания портрета состоит из шагов:
1. Получение изображений нужного разрешения. От разрешения будет зависеть шаг сетки, в которой будем строить бары.
2. Получение значений яркости для каждого пикселя. Если нужно цветное изображение, то нужно получить цвет каждого пикселя.
3. Создание датасета, в котором есть id каждого пикселя, его координаты, яркость и цвет
4. Подключение датасета к среде визуализации
5. Сама визуализация.
Все это можно делать в удобных для себя инструментах (js, R, python, processing и т.п.). У меня это Питон, библиотека обработки изображений Pillow для создания датасета, Tableau для визуализаций.
После того как будет готов датасет, можно строить визуализации. Для бар-чартов надо построить сетку X x Y, где X и Y делят пространство на ячейки, внутри которых рисуем бар-чарты. Потом можно экспериментировать с направлением баров (вертикальное или горизонтальное), шириной, цветом и т.д. В сочетании 'bar chART' есть слово 'ART', и это неслучайно 🙂.
За параметр длины бара берется величина 255 - [Brightness]. То есть, длина бара определяет степень затемнения ячейки. 255 - максимальное значение яркости.
Кроме баров можно использовать круги с переменным диаметром. Тогда получится диаграмма разброса (Scatter Plot). Можно использовать квадраты, ромбы, звезды и другие шейпы (флаги стран, лого компаний и т.п.). Отдельным типом диаграмм будет диаграмма Ганнта, для которой можно настраивать точку в ячейке, от которой будем заполнять ячейки.
Прикольное что делал таким способом:
1. Портрет из лого компании.
2. Портрет из портретов. То есть, в качестве шейпа используем сам портрет из которого формируем конечное изображение. Шейп только надо немного доработать.
В Tableau работает анимация - портреты плавно перетекают из одного изображения в другое. Меняются размеры баров, шейпов и других Marks одновременно. Это довольно интересно наблюдать. Есть проблема с классическими барами - они не анимируются. Связано это с тем, что за последние 2-3 года сильно урезали возможность анимации. Раньше все работало нормально, сейчас приходится немного потанцевать с бубном.
В визуализацию добавил возможность изменения яркости изображения. То есть, просто есть некоторый коэффициент, на который домножаются значения яркости всех пикселей, при этом, меняется яркость.
Сам конечный портрет представляет собой семейство бар-чартов, где каждый бар показывает степень яркости пикселя изображения.
Radial Bump Chart и математические функции
Больше пяти лет прошло как в рамках проекта MakeoverMonday сделал визуализацию 'NHL Attendance' в Tableau. Визуализация отображает посещения матчей НХЛ 🏒 по сезонам, игры каких команд были наиболее посещаемы. Данные ESPN. Можно переключаться с абсолютного числа посещений на ранги. Это была первая радиальная ранговая сигмоидная диаграмма в Tableau. Весь процесс создания описал в статье "Радиальная ранговая диаграмма в Tableau".
Ранговые диаграммы в Tableau уже были, например:
1. Matt Chambers. "Популярность цветов новых автомобилей в Северной Америке 2000-2015".
2. Ken Flerlage "Рейтинг стран по ВВП 2000-2015» и визуализация
3. Laine Caruzca "Рейтинг бейсбольных команд по победам с 2000 по 2017".
Последние две работы используют сигмоиды. Сигмоиды - это 'S'- образные кривые с двумя асимптотами по Y. Кривые строятся на базе функций, самой популярной из которых является логистическая функция y=1/(1+e^-x). Ранги в диаграмме соединяются сигмоидами, поэтому, получаются плавные переходы.
Последняя визуализация про бейсбол ⚾️ понравилась, построил подобную про НХЛ 🏒. Потом интересно стало сделать из линейной диаграммы радиальную. Надо было каждую точку диаграммы повернуть на определенный угол. В этом помогают формулы поворота - тригонометрические формулы. Вот эти:
X = x * cos(angle) - y * sin(angle)
Y = x * sin(angle) + y * cos(angle)
Где x,y - первоначальные координаты точки, а X,Y - конечные координаты после поворота, angle - угол поворота.
Как будто это несложно, но сама визуализация вызвала интерес у комьюнити. Её выбрали в качестве 'The Viz of the Day', она есть в каталоге визуализаций у Kevin Flerlage 'The Tableau Chart Catalog'. Позже сделал другую визуализацию: 'Formula 1. 2018 World Championship. Results' по рейтингам и очкам пилотов Формулы 1 🏎 в сезоне 2018.
Самое интересное, что к этому типу диаграммы возвращаются разные люди, повторяют её, вносят свои идеи. Один из примеров: 'Popular Dog Breeds| Radial bump chart'. Популярные породы собак от Anjushree B V. Выбрали визуализацией дня.
Главная мысль после нескольких лет работы с визуализацией данных:
Любую визуализацию данных можно описать простыми математическими функциями. Визуализация данных - это набор геометрических фигур, поэтому работают все формулы классической (Евклидовой) геометрии.
После того как это понимаешь, границы невозможного стираются. Для абсолютно любой, сколь угодно сложной визуализации, просто нужно найти функции, описывающие её геометрию.
И вот, спустя 5,5 лет, радиальную сигмоидную диаграмму делает Lisa Trescott (Лиза - победитель Iron Viz 2021) по той же самой статье, которую скидывал выше. Это диаграмма 'Dexter: Blood Never Lies', ее выбрали 'The Viz of the Day'.
Неделю назад в блоге 'Flerlage Twiins' вышла статья про такую диаграмму 'A Dexter Viz + Curvy Radar Template'. Ken и Kevin Flerlage ведут популярный блог о Tableau. Кен написал мне до публикации, что реализовал логику расчетов из моей статьи в самом Tableau (я датасет делал до Tableau) и планирует написать статью. Такой вот флешбек.
Получается что каждый автор придумывает и вносит что-то своё. Позже это может превратиться в источник вдохновения и даже стать определенным стандартом. Так эволюционировало много визуализаций, и прелесть в том, что это коллективное творчество.
Про Bump Chart было (и будет) несколько ступеней эволюции (здесь с названиями неоднозначно):
1. Bump Chart (Matt Chambers)
2. Bump Chart with Sigmoids (Chris de Martini и Jeff Shaffer)
3. Radial Bump Chart with Sigmoids (мы здесь)
4. Radial Ribbon Bump Chart with Sigmoids (в Tableau пока не построили)
5. Radial Ribbon Area Chart with Sigmoids (в Tableau пока не построили)
4 и 5 можно построить в Tableau точно с помощью внутренних вычислений. Надо использовать: сигмоиды, юнион, полигоны, денсификацию, нестеды.
Если хотите сделать что-то новое в Tableau, пробуйте пункты 4,5
Больше пяти лет прошло как в рамках проекта MakeoverMonday сделал визуализацию 'NHL Attendance' в Tableau. Визуализация отображает посещения матчей НХЛ 🏒 по сезонам, игры каких команд были наиболее посещаемы. Данные ESPN. Можно переключаться с абсолютного числа посещений на ранги. Это была первая радиальная ранговая сигмоидная диаграмма в Tableau. Весь процесс создания описал в статье "Радиальная ранговая диаграмма в Tableau".
Ранговые диаграммы в Tableau уже были, например:
1. Matt Chambers. "Популярность цветов новых автомобилей в Северной Америке 2000-2015".
2. Ken Flerlage "Рейтинг стран по ВВП 2000-2015» и визуализация
3. Laine Caruzca "Рейтинг бейсбольных команд по победам с 2000 по 2017".
Последние две работы используют сигмоиды. Сигмоиды - это 'S'- образные кривые с двумя асимптотами по Y. Кривые строятся на базе функций, самой популярной из которых является логистическая функция y=1/(1+e^-x). Ранги в диаграмме соединяются сигмоидами, поэтому, получаются плавные переходы.
Последняя визуализация про бейсбол ⚾️ понравилась, построил подобную про НХЛ 🏒. Потом интересно стало сделать из линейной диаграммы радиальную. Надо было каждую точку диаграммы повернуть на определенный угол. В этом помогают формулы поворота - тригонометрические формулы. Вот эти:
X = x * cos(angle) - y * sin(angle)
Y = x * sin(angle) + y * cos(angle)
Где x,y - первоначальные координаты точки, а X,Y - конечные координаты после поворота, angle - угол поворота.
Как будто это несложно, но сама визуализация вызвала интерес у комьюнити. Её выбрали в качестве 'The Viz of the Day', она есть в каталоге визуализаций у Kevin Flerlage 'The Tableau Chart Catalog'. Позже сделал другую визуализацию: 'Formula 1. 2018 World Championship. Results' по рейтингам и очкам пилотов Формулы 1 🏎 в сезоне 2018.
Самое интересное, что к этому типу диаграммы возвращаются разные люди, повторяют её, вносят свои идеи. Один из примеров: 'Popular Dog Breeds| Radial bump chart'. Популярные породы собак от Anjushree B V. Выбрали визуализацией дня.
Главная мысль после нескольких лет работы с визуализацией данных:
Любую визуализацию данных можно описать простыми математическими функциями. Визуализация данных - это набор геометрических фигур, поэтому работают все формулы классической (Евклидовой) геометрии.
После того как это понимаешь, границы невозможного стираются. Для абсолютно любой, сколь угодно сложной визуализации, просто нужно найти функции, описывающие её геометрию.
И вот, спустя 5,5 лет, радиальную сигмоидную диаграмму делает Lisa Trescott (Лиза - победитель Iron Viz 2021) по той же самой статье, которую скидывал выше. Это диаграмма 'Dexter: Blood Never Lies', ее выбрали 'The Viz of the Day'.
Неделю назад в блоге 'Flerlage Twiins' вышла статья про такую диаграмму 'A Dexter Viz + Curvy Radar Template'. Ken и Kevin Flerlage ведут популярный блог о Tableau. Кен написал мне до публикации, что реализовал логику расчетов из моей статьи в самом Tableau (я датасет делал до Tableau) и планирует написать статью. Такой вот флешбек.
Получается что каждый автор придумывает и вносит что-то своё. Позже это может превратиться в источник вдохновения и даже стать определенным стандартом. Так эволюционировало много визуализаций, и прелесть в том, что это коллективное творчество.
Про Bump Chart было (и будет) несколько ступеней эволюции (здесь с названиями неоднозначно):
1. Bump Chart (Matt Chambers)
2. Bump Chart with Sigmoids (Chris de Martini и Jeff Shaffer)
3. Radial Bump Chart with Sigmoids (мы здесь)
4. Radial Ribbon Bump Chart with Sigmoids (в Tableau пока не построили)
5. Radial Ribbon Area Chart with Sigmoids (в Tableau пока не построили)
4 и 5 можно построить в Tableau точно с помощью внутренних вычислений. Надо использовать: сигмоиды, юнион, полигоны, денсификацию, нестеды.
Если хотите сделать что-то новое в Tableau, пробуйте пункты 4,5
Вселенная Telegram и tech каналы
Телеграм сейчас является основным источником контента для многих. Стало интересно сделать анализ всех телеграм каналов: подписчики, рейтинги, частота статей, процент репостов, процент рекламы и т.д., поэтому посмотрел как можно достать данные. Какого-то сервиса, где можно сразу быстро и просто взять все каналы и набор метрик по ним, я не нашел, поэтому посмотрел что есть из готовых данных.
Существуют агрегаторы данных телеграм типа tgstat. Похоже что наиболее простой способ - парсить данные агрегаторов. Варианты с ботами, виртуальными аккаунтами показались более затратными.
Итак, посмотрел несколько агрегаторов, взял на пробу три датасемпла. Самым адекватным показался семпл tgstat, поэтому, остановился на нем. В сервисе надо регистрироваться по телеграм аккаунту. Контент динамический, то есть, подгружается по клику. В парсинге всех данных не было смысла - важно было посмотреть что получится на семплах. Спарсил несколько категорий RU домена.
Сегодня расскажу про tech каналы с этой страницы. Это каналы категориии 'Технологии', Россия. Есть несколько каналов из этой категории, читаю их ежедневно, ну и этот канал тоже о технологиях.
Теперь о парсинге. У tgstat есть защита от ботов, регистрация по телеграм аккаунту, динамический контент (не все загружается сразу). Питоновская библиотека requests здесь не работает. Playwright не может регистрироваться с внутренних браузеров - ошибка. Поэтому, делаем максимально 'человеческий' скрипт. Скрипт повторяет действия человека. Запускается Хром в режиме отладки, скрипт логинится, нажимает кнопки для загрузки контента в этом браузере и скачивает данные. Все сохраняется в csv, поля:
Категории
1. id канала
2. Техническое название канала с @ в начале
3. Название канала
4. Ссылка на лого канала
5. Описание канала
Метрики:
6. Число подписчиков
7. Дата последней активности
Сохраняем только каналы с числом подписчиков 100 и больше, и из 15и тысяч остается 7635. С названиями каналов есть нюансы в парсинге, но обойти можно.
Итого, датасет готов, можно покрутить и поискать инсайты. Лого скачал скриптом. Первые 20 каналов сильно выделяются на фоне остальных огромным числом подписчиков. Поэтому хотелось показать сразу все каналы, построить 'вселенную' каналов. Визуализация - packed bubbles c лого и размерами кругов пропорциональными числу подписчиков.
Теперь к самой визуализации. Packed bubbles можно делать различными способами и в разных средах. В BI - большие ограничения, питон - долго считает (пробовал, но ждать долго). Поэтому, победил Процессинг, сделал на p5js, алгоритм collide. В коде js есть 7 параметров, их можно настраивать, получая разные вариации диаграммы. Долго игрался с этим, в итоге, в комментах приложил 3 визуализации в разрешении 8k:
1. Каналы 100 и более подписчиков. 7635 штук.
2. Каналы 1000 - 100000 подписчиков. 4535 штук.
3. Каналы 10000 - 100000 подписчиков. 1009 штук.
Получились своего рода вселенные со звездами и планетами (самое то на fullscreen). На одной картинке можете видеть все каналы и представить масштабы контента в телеграм. Разрешение высокое, можно зумить и искать интересные каналы. Контент 3ей категории читаю больше всего, поэтому, сделал интерактивный виз в Tableau именно в этом диапазоне подписчиков. Координаты кругов взял из js.
Интерактив с фильтрами и хайлайтами в Tableau
Здесь можно найти канал, выбирать диапазон подписчиков и рейтинги на основе числа подписчиков. Можно читать описание и переходить в сам канал по клику.
Из того что читаю: LEFT JOIN, Reveal the Data, Инжиниринг данных, Время Валеры, Чартомойка и другие.
Интересно получилось.
Cмотрел еще категории 'блоги' и 'спорт' . Там кривые по рейтингам другие совершенно. Про это тоже расскажу. До визуализации всей телеграм вселенной осталось немного.
Телеграм сейчас является основным источником контента для многих. Стало интересно сделать анализ всех телеграм каналов: подписчики, рейтинги, частота статей, процент репостов, процент рекламы и т.д., поэтому посмотрел как можно достать данные. Какого-то сервиса, где можно сразу быстро и просто взять все каналы и набор метрик по ним, я не нашел, поэтому посмотрел что есть из готовых данных.
Существуют агрегаторы данных телеграм типа tgstat. Похоже что наиболее простой способ - парсить данные агрегаторов. Варианты с ботами, виртуальными аккаунтами показались более затратными.
Итак, посмотрел несколько агрегаторов, взял на пробу три датасемпла. Самым адекватным показался семпл tgstat, поэтому, остановился на нем. В сервисе надо регистрироваться по телеграм аккаунту. Контент динамический, то есть, подгружается по клику. В парсинге всех данных не было смысла - важно было посмотреть что получится на семплах. Спарсил несколько категорий RU домена.
Сегодня расскажу про tech каналы с этой страницы. Это каналы категориии 'Технологии', Россия. Есть несколько каналов из этой категории, читаю их ежедневно, ну и этот канал тоже о технологиях.
Теперь о парсинге. У tgstat есть защита от ботов, регистрация по телеграм аккаунту, динамический контент (не все загружается сразу). Питоновская библиотека requests здесь не работает. Playwright не может регистрироваться с внутренних браузеров - ошибка. Поэтому, делаем максимально 'человеческий' скрипт. Скрипт повторяет действия человека. Запускается Хром в режиме отладки, скрипт логинится, нажимает кнопки для загрузки контента в этом браузере и скачивает данные. Все сохраняется в csv, поля:
Категории
1. id канала
2. Техническое название канала с @ в начале
3. Название канала
4. Ссылка на лого канала
5. Описание канала
Метрики:
6. Число подписчиков
7. Дата последней активности
Сохраняем только каналы с числом подписчиков 100 и больше, и из 15и тысяч остается 7635. С названиями каналов есть нюансы в парсинге, но обойти можно.
Итого, датасет готов, можно покрутить и поискать инсайты. Лого скачал скриптом. Первые 20 каналов сильно выделяются на фоне остальных огромным числом подписчиков. Поэтому хотелось показать сразу все каналы, построить 'вселенную' каналов. Визуализация - packed bubbles c лого и размерами кругов пропорциональными числу подписчиков.
Теперь к самой визуализации. Packed bubbles можно делать различными способами и в разных средах. В BI - большие ограничения, питон - долго считает (пробовал, но ждать долго). Поэтому, победил Процессинг, сделал на p5js, алгоритм collide. В коде js есть 7 параметров, их можно настраивать, получая разные вариации диаграммы. Долго игрался с этим, в итоге, в комментах приложил 3 визуализации в разрешении 8k:
1. Каналы 100 и более подписчиков. 7635 штук.
2. Каналы 1000 - 100000 подписчиков. 4535 штук.
3. Каналы 10000 - 100000 подписчиков. 1009 штук.
Получились своего рода вселенные со звездами и планетами (самое то на fullscreen). На одной картинке можете видеть все каналы и представить масштабы контента в телеграм. Разрешение высокое, можно зумить и искать интересные каналы. Контент 3ей категории читаю больше всего, поэтому, сделал интерактивный виз в Tableau именно в этом диапазоне подписчиков. Координаты кругов взял из js.
Интерактив с фильтрами и хайлайтами в Tableau
Здесь можно найти канал, выбирать диапазон подписчиков и рейтинги на основе числа подписчиков. Можно читать описание и переходить в сам канал по клику.
Из того что читаю: LEFT JOIN, Reveal the Data, Инжиниринг данных, Время Валеры, Чартомойка и другие.
Интересно получилось.
Cмотрел еще категории 'блоги' и 'спорт' . Там кривые по рейтингам другие совершенно. Про это тоже расскажу. До визуализации всей телеграм вселенной осталось немного.
Визуализация данных и евклидова геометрия
Человек плохо воспринимает информацию в виде цифр. Эволюционно люди и другие виды живых существ ориентированы на геометрические объекты. Всё что человек видит - это сложные геометрические формы, которые мозг способен описывать, то есть, понимать размеры, форму и т.д. Цифры и числа - некая система отсчета, придуманная человеком и помогающая ему описывать сложные системы.
Визуализация данных по своей сути - это процесс перевода числовой информации в геометрические примитивы (линии, квадраты, круги и т.д.), - их мозг воспринимает намного быстрее. Когда-то начал задумываться что такое визуализация и зачем она нужна, пришел к выводу что это перевод числовой информации в геометрическую для ускорения понимания данных.
Эта мысль сильно изменила сознание. Понимаешь что кроме шаблонов визуализаций у тебя в арсенале есть все геометрические формулы (школьной программы более чем достаточно), и с ними можно уходить на другие уровни визуализации данных. Можно использовать гармонические функции, преобразования координат, формулы проекций, различные функции. Всё это - другой мир, позволяющий делать почти всё что хочешь.
Главный труд Евклида 'Начала' был написал около 300 г до нашей эры.
С этим трудом тесно связана элементарная или евклидова геометрия. Формулам, которые мы применяем в визуализации данных может быть несколько тысяч и сотен лет, но они до сих пор актуальны.
О построении нетривиальных визуализаций и геометрических преобразованиях буду рассказывать на мероприятии 'Cyprus Tableau User Group' в докладе 'Beyond the Basics: Unleashing the Full Power of Tableau Visualizations'.
В бизнесе важна скорость и однозначность считывания информации с дашбордов. Поэтому, в большинстве случаев, трех видов диаграмм достаточно для описания данных (линейный график, бар-чарт, диаграмма разброса). Их все понимают. За пределами бизнесовых дашбордов с визуализацией можно экспериментировать сколько угодно - здесь масса вариантов для творчества. Постепенно приходишь к тому что становится интересным экспериментировать с визуализацией и искать новые подходы. Здесь нет ограничений - можно делать всё что угодно, даже вещи, которые ранее считались невозможными. В конце концов, появляется потребность в экспериментах и самовыражении, невозможные задачи перестают существовать.
Мне повезло учиться данным и их визуализации в международном data комьюнити, когда не было курсов, и аналитика не была в почёте. Можно было экспериментировать вместе с энтузиастами из разных стран и разбирать визы с топами в этой области. Люди из разнызх стран и компаний в свободное время собирали датавизы, общались, а драйва и опыта в этом куда больше чем в работе с базовым Superstore.
Отметил шаги, которые проходишь в своём развитии:
1. Реверс-инжиниринг. Разбираешь чьи-то работы и пытаешься понять как они сделаны.
2. Создание собственных визуализаций. Берешь датасет и делаешь виз на стандартных диаграммах.
3. Создание чего-то нового для себя. То что ты ещё не делал. Каждый раз узнаешь что-то новое и совершенствуешься.
4. Создание чего-то нового для всего сообщества. То, что в профессиональных сообществах еще никто не делал.
5. Шеринг опыта и знаний.
4й шаг очень сложный - кажется что всё уже сделано в визуализации. На самом деле - нет, ещё много всего не придумано. Но здесь важно понять что люди не пытаются делать новые вещи, поскольку считают невозможным или ненужным в рамках одного инструмента.
5й шаг - это статьи, посты, выступления. Люди начинают учиться на твоих работах, разбирать их в группах, переводить статьи, дополнять своими мыслями.
Визуализация - это геометрия. Утверждение очень помогает в поиске новых подходов. Хотите создать что-то новое в визуализации, используйте геометрические преобразования: повороты, сдвиги, масштабирование и др.
В визуализации данных правило Линуса 'Talk is cheap. Show me the code' также работает. Смотрите на то что люди делают. У профессионалов в визуализации данных всегда есть что посмотреть и чему научиться.
Человек плохо воспринимает информацию в виде цифр. Эволюционно люди и другие виды живых существ ориентированы на геометрические объекты. Всё что человек видит - это сложные геометрические формы, которые мозг способен описывать, то есть, понимать размеры, форму и т.д. Цифры и числа - некая система отсчета, придуманная человеком и помогающая ему описывать сложные системы.
Визуализация данных по своей сути - это процесс перевода числовой информации в геометрические примитивы (линии, квадраты, круги и т.д.), - их мозг воспринимает намного быстрее. Когда-то начал задумываться что такое визуализация и зачем она нужна, пришел к выводу что это перевод числовой информации в геометрическую для ускорения понимания данных.
Эта мысль сильно изменила сознание. Понимаешь что кроме шаблонов визуализаций у тебя в арсенале есть все геометрические формулы (школьной программы более чем достаточно), и с ними можно уходить на другие уровни визуализации данных. Можно использовать гармонические функции, преобразования координат, формулы проекций, различные функции. Всё это - другой мир, позволяющий делать почти всё что хочешь.
Главный труд Евклида 'Начала' был написал около 300 г до нашей эры.
С этим трудом тесно связана элементарная или евклидова геометрия. Формулам, которые мы применяем в визуализации данных может быть несколько тысяч и сотен лет, но они до сих пор актуальны.
О построении нетривиальных визуализаций и геометрических преобразованиях буду рассказывать на мероприятии 'Cyprus Tableau User Group' в докладе 'Beyond the Basics: Unleashing the Full Power of Tableau Visualizations'.
В бизнесе важна скорость и однозначность считывания информации с дашбордов. Поэтому, в большинстве случаев, трех видов диаграмм достаточно для описания данных (линейный график, бар-чарт, диаграмма разброса). Их все понимают. За пределами бизнесовых дашбордов с визуализацией можно экспериментировать сколько угодно - здесь масса вариантов для творчества. Постепенно приходишь к тому что становится интересным экспериментировать с визуализацией и искать новые подходы. Здесь нет ограничений - можно делать всё что угодно, даже вещи, которые ранее считались невозможными. В конце концов, появляется потребность в экспериментах и самовыражении, невозможные задачи перестают существовать.
Мне повезло учиться данным и их визуализации в международном data комьюнити, когда не было курсов, и аналитика не была в почёте. Можно было экспериментировать вместе с энтузиастами из разных стран и разбирать визы с топами в этой области. Люди из разнызх стран и компаний в свободное время собирали датавизы, общались, а драйва и опыта в этом куда больше чем в работе с базовым Superstore.
Отметил шаги, которые проходишь в своём развитии:
1. Реверс-инжиниринг. Разбираешь чьи-то работы и пытаешься понять как они сделаны.
2. Создание собственных визуализаций. Берешь датасет и делаешь виз на стандартных диаграммах.
3. Создание чего-то нового для себя. То что ты ещё не делал. Каждый раз узнаешь что-то новое и совершенствуешься.
4. Создание чего-то нового для всего сообщества. То, что в профессиональных сообществах еще никто не делал.
5. Шеринг опыта и знаний.
4й шаг очень сложный - кажется что всё уже сделано в визуализации. На самом деле - нет, ещё много всего не придумано. Но здесь важно понять что люди не пытаются делать новые вещи, поскольку считают невозможным или ненужным в рамках одного инструмента.
5й шаг - это статьи, посты, выступления. Люди начинают учиться на твоих работах, разбирать их в группах, переводить статьи, дополнять своими мыслями.
Визуализация - это геометрия. Утверждение очень помогает в поиске новых подходов. Хотите создать что-то новое в визуализации, используйте геометрические преобразования: повороты, сдвиги, масштабирование и др.
В визуализации данных правило Линуса 'Talk is cheap. Show me the code' также работает. Смотрите на то что люди делают. У профессионалов в визуализации данных всегда есть что посмотреть и чему научиться.
Все каналы Telegram
Telegram из простого мессенджера превратился в агрегатор новостей, блогов, корпоративных чатов, магазинов и различных приложений. Каналы в Телеграм развиваются стремительно, и вот уже мы начинаем свой день с новостей в телеграм каналах, а не ходим на новостные сайты, как это было буквально 5 лет назад. Кроме этого, Телеграм забрал на себя часть функции соцсетей. Давайте попробуем оценить насколько сейчас Телеграм большой, какие есть каналы, какие категории, какая аудитория каналов. Чаты пока не берём, про них отдельно напишу.
Собрал данные о 720 802 каналов в Телеграм от 0 подписчиков и выше. Это результат парсинга tgstat.com, около двух дней всё собиралось - пришлось работать с динамической подгрузкой и обходить защиты Cloudflare. Каналы разбиты на 48 категорий (тем) и 11 гео (это 10 ключевых стран и Global - остальные страны). Каналов без категорий здесь нет - их много, но они мелкие, и непонятно о чем. Из собранных каналов 50 000 приватных, остальные - публичные. Датасет по каналам выложил на kaggle, предварительно убрав группы каналов 18+, даркнет и все приватные каналы, чтобы не компроментировать инвайт ссылки. В публичном доступе подобного датасета не видел, поэтому вам может быть интересно покрутить данные. Получилось более 650 000 каналов в 43х категориях. Каждая категория - в своём файле csv.
Все каналы в Телеграм делятся на публичные и приватные. У публичных каналов есть '@' в названии, например, название этого канала @data_bar. У приватных каналов вместо названий - набор букв. Приватные каналы не выводятся в поиске. Люди скрывают каналы по ряду причин: анонимность, защита от ботов, платные каналы и пр.. Но, если вы сделали инвайт ссылку, по которой в приватный канал приходят пользователи, эта ссылка может оказаться в общем доступе, и канал перестанет быть приватным. Поэтому ссылки приватных каналов не выкладываю.
Теперь к простому анализу данных.
Каналы разбиваются по темам. Больше всего каналов в категории 'Blogs', меньше всего - 'Courses'. Самые крупные каналы - в категории 'Crypto'. Самый большой канал - Хомяк (@hamster_combat), там более 52х млн подписчиков, но отток существенный.
По гео больше всего каналов в RU сегменте. Открытием было то что в ключевых странах есть Иран и Эфиопия. В разных странах разные темы более популярны. Например, в Индии больше всего каналов категории 'Education', в России - 'Blogs', в Китае - 'Adult' (50% от всех каналов и сумасшедшее количество подписчиков просто), в Иране популярны 'Quotes' - это цитаты и изречения, в Узбекистане - 'Sales', в Казахстане - 'News'.
В заглавной картинке - Топ 1000 каналов по подписчикам. Площадь каждого круга пропорциональна числу подписчиков.
Визуализацию по публичным каналам сделал, но про неё отдельно напишу - пока в Hide.
Про метрики телеграм каналов - тоже отдельно.
Telegram из простого мессенджера превратился в агрегатор новостей, блогов, корпоративных чатов, магазинов и различных приложений. Каналы в Телеграм развиваются стремительно, и вот уже мы начинаем свой день с новостей в телеграм каналах, а не ходим на новостные сайты, как это было буквально 5 лет назад. Кроме этого, Телеграм забрал на себя часть функции соцсетей. Давайте попробуем оценить насколько сейчас Телеграм большой, какие есть каналы, какие категории, какая аудитория каналов. Чаты пока не берём, про них отдельно напишу.
Собрал данные о 720 802 каналов в Телеграм от 0 подписчиков и выше. Это результат парсинга tgstat.com, около двух дней всё собиралось - пришлось работать с динамической подгрузкой и обходить защиты Cloudflare. Каналы разбиты на 48 категорий (тем) и 11 гео (это 10 ключевых стран и Global - остальные страны). Каналов без категорий здесь нет - их много, но они мелкие, и непонятно о чем. Из собранных каналов 50 000 приватных, остальные - публичные. Датасет по каналам выложил на kaggle, предварительно убрав группы каналов 18+, даркнет и все приватные каналы, чтобы не компроментировать инвайт ссылки. В публичном доступе подобного датасета не видел, поэтому вам может быть интересно покрутить данные. Получилось более 650 000 каналов в 43х категориях. Каждая категория - в своём файле csv.
Все каналы в Телеграм делятся на публичные и приватные. У публичных каналов есть '@' в названии, например, название этого канала @data_bar. У приватных каналов вместо названий - набор букв. Приватные каналы не выводятся в поиске. Люди скрывают каналы по ряду причин: анонимность, защита от ботов, платные каналы и пр.. Но, если вы сделали инвайт ссылку, по которой в приватный канал приходят пользователи, эта ссылка может оказаться в общем доступе, и канал перестанет быть приватным. Поэтому ссылки приватных каналов не выкладываю.
Теперь к простому анализу данных.
Каналы разбиваются по темам. Больше всего каналов в категории 'Blogs', меньше всего - 'Courses'. Самые крупные каналы - в категории 'Crypto'. Самый большой канал - Хомяк (@hamster_combat), там более 52х млн подписчиков, но отток существенный.
По гео больше всего каналов в RU сегменте. Открытием было то что в ключевых странах есть Иран и Эфиопия. В разных странах разные темы более популярны. Например, в Индии больше всего каналов категории 'Education', в России - 'Blogs', в Китае - 'Adult' (50% от всех каналов и сумасшедшее количество подписчиков просто), в Иране популярны 'Quotes' - это цитаты и изречения, в Узбекистане - 'Sales', в Казахстане - 'News'.
В заглавной картинке - Топ 1000 каналов по подписчикам. Площадь каждого круга пропорциональна числу подписчиков.
Визуализацию по публичным каналам сделал, но про неё отдельно напишу - пока в Hide.
Про метрики телеграм каналов - тоже отдельно.
"Дайте вилку" или IT вакансии с зарплатами
Год подходит к концу, компании закладывают бюджеты на следующий год, в том числе, и на новые позиции. Сейчас на рынке IT вакансий ситуация странная. Кто-то говорит, что спрос низкий, кто-то - высокий. Еще доллар по 105р уже, что делает более привлекательной ЗП в валюте. И на кого повесят в PФ повышенный НДФЛ в следующем году - вопрос пока открытый.
Хотелось посмотреть и понять что сейчас по вакансиям и зарплатам в IT, каким компаниям кто нужен, и какие навыки требуются.
В профильных чатах на публикацию вакансии в комментах часто просят вилку. И чёт без вилки уже как-будто не комильфо приходить. Но это дискуссионно. Без указания ЗП делать анализ вакансий смысла нет. Есть агенства, которые занимаются анализом рынка вакансий, но их отчёты либо платные, либо их невозможно смотреть - это портянки на 75+ страниц с кучей барчартов и пайчартов из которых большая часть диаграмм - 'чтобы было'. Как будто чем больше диаграмм тем качественнее анализ. И данные, в основном, из опросов. К цифрам опросов всегда есть вопросы.
Из интерактива знаю классный дашборд по зарплатам аналитиков Рома Бунина и проекта 'Left Join' по данным hh. Других хороших интерактивных инструментов на открытых данных не помню.
Решил сделать несложный инструмент анализа вакансий и зарплат для себя с данными по всем направлениям IT. Хотелось визуализировать именно вилки. Посмотрел что с данными, откуда их можно взять. На hh.ru с указанием зарплат не всё радужно, есть вакансии, висящие годами, одинаковые вакансии в разных городах и т.д. Есть 'Хабр Карьера', но про неё мало что знаю. Ещё есть сервис 'Getmatch'. Появился не так давно, но вакансиях указывают зарплатные вилки. Кажется что именно эта фишка, их телеграм бот, специализация только на IT делают сервис наиболее привлекательным для сбора и анализа данных.
В итоге, собрал данные всех актуальных вакансий Getmatch. Их около 1500. Отбросил вакансии без указания зарплат - их 5%; с оставшимися 95% можно работать. Зарплаты в вакансиях не указывают всего 14 компаний (X5, ivi, Lamoda из больших) из 190.
Вакансии делятся на 2 группы:
- С зарплатной вилкой
- С нижней границей зарплат
Зарплаты указаны в рублях, долларах или евро.
Перевел всё в рубли по текущему курсу, чтобы проще было сравнивать вакансии. Разбил на категории - направления в IT. Средние зарплаты можно считать тремя способами:
1. По нижней границе ЗП
2. По средней вилки
3. По максимальной вилки
Медианные ЗП не делал пока.
В данных есть скиллы (навыки), их около 1300 (языки программирования, инструменты, фреймворки и т.п.). Не все нормально бьются друг с другом, поэтому немного причесал, но могут встречаться варианты типа 'Zookeeper' и 'ZooKeeper'. Это некритично, но, с господином Левенштейном, можно привести в идеальное состояние.
Итого, сейчас есть дашборд, где можно смотреть вакансии и зарплаты по различным разрезам, фильтроваться по гео, и много чему ещё. Можно искать вакансии по скиллам. Можно смотреть распределения зарплат, топы компаний по ЗП, сравнивать одинаковые позиции в разных компаниях и т.п. Можно из дашборда переходить на страницу вакансии на getmatch.ru.
Получился инструмент, где могу посмотреть всё что хотел. Локально данные обновляются ежедневно.
Дашборд выложил в паблик
Год подходит к концу, компании закладывают бюджеты на следующий год, в том числе, и на новые позиции. Сейчас на рынке IT вакансий ситуация странная. Кто-то говорит, что спрос низкий, кто-то - высокий. Еще доллар по 105р уже, что делает более привлекательной ЗП в валюте. И на кого повесят в PФ повышенный НДФЛ в следующем году - вопрос пока открытый.
Хотелось посмотреть и понять что сейчас по вакансиям и зарплатам в IT, каким компаниям кто нужен, и какие навыки требуются.
В профильных чатах на публикацию вакансии в комментах часто просят вилку. И чёт без вилки уже как-будто не комильфо приходить. Но это дискуссионно. Без указания ЗП делать анализ вакансий смысла нет. Есть агенства, которые занимаются анализом рынка вакансий, но их отчёты либо платные, либо их невозможно смотреть - это портянки на 75+ страниц с кучей барчартов и пайчартов из которых большая часть диаграмм - 'чтобы было'. Как будто чем больше диаграмм тем качественнее анализ. И данные, в основном, из опросов. К цифрам опросов всегда есть вопросы.
Из интерактива знаю классный дашборд по зарплатам аналитиков Рома Бунина и проекта 'Left Join' по данным hh. Других хороших интерактивных инструментов на открытых данных не помню.
Решил сделать несложный инструмент анализа вакансий и зарплат для себя с данными по всем направлениям IT. Хотелось визуализировать именно вилки. Посмотрел что с данными, откуда их можно взять. На hh.ru с указанием зарплат не всё радужно, есть вакансии, висящие годами, одинаковые вакансии в разных городах и т.д. Есть 'Хабр Карьера', но про неё мало что знаю. Ещё есть сервис 'Getmatch'. Появился не так давно, но вакансиях указывают зарплатные вилки. Кажется что именно эта фишка, их телеграм бот, специализация только на IT делают сервис наиболее привлекательным для сбора и анализа данных.
В итоге, собрал данные всех актуальных вакансий Getmatch. Их около 1500. Отбросил вакансии без указания зарплат - их 5%; с оставшимися 95% можно работать. Зарплаты в вакансиях не указывают всего 14 компаний (X5, ivi, Lamoda из больших) из 190.
Вакансии делятся на 2 группы:
- С зарплатной вилкой
- С нижней границей зарплат
Зарплаты указаны в рублях, долларах или евро.
Перевел всё в рубли по текущему курсу, чтобы проще было сравнивать вакансии. Разбил на категории - направления в IT. Средние зарплаты можно считать тремя способами:
1. По нижней границе ЗП
2. По средней вилки
3. По максимальной вилки
Медианные ЗП не делал пока.
В данных есть скиллы (навыки), их около 1300 (языки программирования, инструменты, фреймворки и т.п.). Не все нормально бьются друг с другом, поэтому немного причесал, но могут встречаться варианты типа 'Zookeeper' и 'ZooKeeper'. Это некритично, но, с господином Левенштейном, можно привести в идеальное состояние.
Итого, сейчас есть дашборд, где можно смотреть вакансии и зарплаты по различным разрезам, фильтроваться по гео, и много чему ещё. Можно искать вакансии по скиллам. Можно смотреть распределения зарплат, топы компаний по ЗП, сравнивать одинаковые позиции в разных компаниях и т.п. Можно из дашборда переходить на страницу вакансии на getmatch.ru.
Получился инструмент, где могу посмотреть всё что хотел. Локально данные обновляются ежедневно.
Дашборд выложил в паблик
Computer Art и авторское право
Мне недавно прилетел страйк от OpenProcessing что один из моих скетчей будет удалён из-за нарушения авторских прав. Такое первый раз, поэтому хочу разобраться.
Итак, openprocessing.org - открытая среда для creative code. Processing - открытый язык программирования на базе Java, в нем удобно делать анимацию, дизайн и просто какие-нибудь интересные графические штуки (creative coding & generative art). Для JavaScript есть библиотека p5js, там вся логика процессинга. Можно писать на js и отображать всю графику в браузере. Довольно популярна среди генеративщиков и дизайнеров. Есть свой редактор в вебе. В моём аккаунт на openprocessing ничего выдающегося нет - просто скетчи.
Так вот, скетч скрыт/удалён с формулировкой 'the following sketches in your account have been taken down due to a Digital Millennium Copyright Act (DMCA), takedown request submitted by a third-party, Artists Rights Society (ARS), who represents the intellectual property rights and permissions interests of Vera Molnár'.
Вера Мольнар (Vera Molnár) - венгерская медиахудожница, одна из первых начала использовать компьютер в живописи. Яркий представитель компьютерного искусства (Computer Art), пионер этого направления. Начинала писать на Фортране в Сорбонне в 60х. Работы можно посмотреть на artnet. Ушла из жизни в прошлом году в возрасте 99 лет, к сожалению.
Вернёмся к проекту. У генеративщиков есть такое событие Genuary - генеративный январь. В январе каждый день даётся тема, и по ней надо что-то кодить, креативить, в общем, делать интересные вещи. В январе 2023 года одной из таких тем была 'Vera Molnar'. Тогда я и сделал этот скетч - по сути, написал код, который повторяет одну из работ художницы. Сейчас такой код написать довольно просто - там используется базовая геометрия, можно за полчаса уложиться. 40-50 лет назад для этого нужно было существенно больше времени и скиллов и компьютер ещё найти.
Этот код никому не мешал 2 года, хотя сам проект был назван Vera Molnar. Сейчас ситуация интереcная - по сути я повторил/украл чужое произведение (с точки зрения Artists Rights Society). Но интересно и то, что по подобным произведениям много туториалов на YouTube и статей, известные генеративщики тоже иногда повторяют что-то подобное. По такой логике надо удалять всё с YouTube, Гитхаба, все форки и т.д. Даже если нарисовать черный квадрат на белом фоне, его, наверное тоже следует удалить, поскольку уже кто-то делал.
В современном искусстве много тривиального - простые геометрические фигуры. Можно взять работы Келли Эллсворта или Бриджет Райли.
Нарисовал, например, жёлтый прямоугольник, и случайно кого-то повторил. Вот как понять что это кто-то сделал, и есть авторские права?
В общем, тема дискуссионная. Напишу письмо в openprocessing - пусть объяснят когда есть нарушение авторских прав, а когда - нет. Защищать права художников нужно обязательно, но я пока не понимаю где граница.
Отдельно стоит отметить, что в на ARS есть раздел 'Artists Rights 101', и там есть про авторское право произведений AI. Копирайтов для AI не придумали, а человеку надо доказать что он принимал участие в работе над AI шедевром.
Интересно что с авторскими правами на дашборды.
Мне недавно прилетел страйк от OpenProcessing что один из моих скетчей будет удалён из-за нарушения авторских прав. Такое первый раз, поэтому хочу разобраться.
Итак, openprocessing.org - открытая среда для creative code. Processing - открытый язык программирования на базе Java, в нем удобно делать анимацию, дизайн и просто какие-нибудь интересные графические штуки (creative coding & generative art). Для JavaScript есть библиотека p5js, там вся логика процессинга. Можно писать на js и отображать всю графику в браузере. Довольно популярна среди генеративщиков и дизайнеров. Есть свой редактор в вебе. В моём аккаунт на openprocessing ничего выдающегося нет - просто скетчи.
Так вот, скетч скрыт/удалён с формулировкой 'the following sketches in your account have been taken down due to a Digital Millennium Copyright Act (DMCA), takedown request submitted by a third-party, Artists Rights Society (ARS), who represents the intellectual property rights and permissions interests of Vera Molnár'.
Вера Мольнар (Vera Molnár) - венгерская медиахудожница, одна из первых начала использовать компьютер в живописи. Яркий представитель компьютерного искусства (Computer Art), пионер этого направления. Начинала писать на Фортране в Сорбонне в 60х. Работы можно посмотреть на artnet. Ушла из жизни в прошлом году в возрасте 99 лет, к сожалению.
Вернёмся к проекту. У генеративщиков есть такое событие Genuary - генеративный январь. В январе каждый день даётся тема, и по ней надо что-то кодить, креативить, в общем, делать интересные вещи. В январе 2023 года одной из таких тем была 'Vera Molnar'. Тогда я и сделал этот скетч - по сути, написал код, который повторяет одну из работ художницы. Сейчас такой код написать довольно просто - там используется базовая геометрия, можно за полчаса уложиться. 40-50 лет назад для этого нужно было существенно больше времени и скиллов и компьютер ещё найти.
Этот код никому не мешал 2 года, хотя сам проект был назван Vera Molnar. Сейчас ситуация интереcная - по сути я повторил/украл чужое произведение (с точки зрения Artists Rights Society). Но интересно и то, что по подобным произведениям много туториалов на YouTube и статей, известные генеративщики тоже иногда повторяют что-то подобное. По такой логике надо удалять всё с YouTube, Гитхаба, все форки и т.д. Даже если нарисовать черный квадрат на белом фоне, его, наверное тоже следует удалить, поскольку уже кто-то делал.
В современном искусстве много тривиального - простые геометрические фигуры. Можно взять работы Келли Эллсворта или Бриджет Райли.
Нарисовал, например, жёлтый прямоугольник, и случайно кого-то повторил. Вот как понять что это кто-то сделал, и есть авторские права?
В общем, тема дискуссионная. Напишу письмо в openprocessing - пусть объяснят когда есть нарушение авторских прав, а когда - нет. Защищать права художников нужно обязательно, но я пока не понимаю где граница.
Отдельно стоит отметить, что в на ARS есть раздел 'Artists Rights 101', и там есть про авторское право произведений AI. Копирайтов для AI не придумали, а человеку надо доказать что он принимал участие в работе над AI шедевром.
Интересно что с авторскими правами на дашборды.
Packed Bubbles с сортировкой или все телеграм каналы на одной визуализации
Не все диаграммы популярны. Диаграмма Packed Bubbles очень редко используется в бизнесе, хотя в Tableau она есть в стандартных и вызывается из меню 'Show Me'.
Суть диаграммы в том, чтобы представить набор данных в виде кругов (пузырей), где в размере каждого пузыря будет какая-то метрика датасета. Можно в цвет закинуть какую-то категорию.
Теперь о нетривиальности таких диаграмм. Мы можем задавать порядок следования пузырей и категорий. Про это не все знают, поэтому, сегодня расскажу о радиальных Packed Bubbles на примере визуализации Telegram каналов и тематик этих каналов.
Визуализация 'Public Telegram Channels' интерактивна, можно фильтровать по каналам, искать каналы по ключевым словам, а также переходить на выбранные каналы прямо в Telegram. Понятно что для принятия решений такое вряд ли подойдет, но подобные диаграммы позволяют оценить масштаб всех данных. к тому же интересно на них что-то поискать. Еще можно переключать типы диаграмм, по-сути, выбирать порядок сортировки и иерархию категорий.
В заглавном изображении показаны 4 диаграммы, отображающие одно и то же:
- каждый круг - один телеграм-канал, где площадь круга отображает число подписчиков.
- цвет - тема канала
Мы можем задавать порядок сортировки категорий и порядок каналов(кругов) внутри категорий.
Рис. 1
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наименьшего к наибольшему.
В итоге, получается что в каждом цветном кольце каналы тоже сортируются.
Рис. 2
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наибольшего к наименьшему.
Диаграмма изменилась только из-за порядка сортировки, но отражает то же самое
Рис. 3
- Сортируем каналы по их рангу внутри каждой категории
То есть, каналы с самым большим числом подписчиком из каждой категории, будут в центре
Рис.4.
Добавляем еще одну категорию - страна.
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наименьшего к наибольшему.
- По стране канала от меньшему к большему
Появляются 'кольца' для каждой страны.
Здесь стоит остановиться на порядке разбиения данных (иерархии уровней данных):
- Сначала разбиваем на страны
- Далее внутри каждой страны разбиваем на категории
- Потом разбиваем на каналы внутри каждой категории
Порядок разбиения задается порядком следования полей на панели Marks, сверху вниз.
Как видим, можно включать любое число уровней данных в грануляцию и настраивать сортировку на каждом уровне по-своему. Иерархия уровней данных также важна. Это справедливо для других диаграмм тоже. Сортировку и порядок разбиения данных иногда недооценивают при построении диаграмм, но, как видим, они существенно могут изменить вид и смысл диаграммы.
Не все диаграммы популярны. Диаграмма Packed Bubbles очень редко используется в бизнесе, хотя в Tableau она есть в стандартных и вызывается из меню 'Show Me'.
Суть диаграммы в том, чтобы представить набор данных в виде кругов (пузырей), где в размере каждого пузыря будет какая-то метрика датасета. Можно в цвет закинуть какую-то категорию.
Теперь о нетривиальности таких диаграмм. Мы можем задавать порядок следования пузырей и категорий. Про это не все знают, поэтому, сегодня расскажу о радиальных Packed Bubbles на примере визуализации Telegram каналов и тематик этих каналов.
Визуализация 'Public Telegram Channels' интерактивна, можно фильтровать по каналам, искать каналы по ключевым словам, а также переходить на выбранные каналы прямо в Telegram. Понятно что для принятия решений такое вряд ли подойдет, но подобные диаграммы позволяют оценить масштаб всех данных. к тому же интересно на них что-то поискать. Еще можно переключать типы диаграмм, по-сути, выбирать порядок сортировки и иерархию категорий.
В заглавном изображении показаны 4 диаграммы, отображающие одно и то же:
- каждый круг - один телеграм-канал, где площадь круга отображает число подписчиков.
- цвет - тема канала
Мы можем задавать порядок сортировки категорий и порядок каналов(кругов) внутри категорий.
Рис. 1
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наименьшего к наибольшему.
В итоге, получается что в каждом цветном кольце каналы тоже сортируются.
Рис. 2
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наибольшего к наименьшему.
Диаграмма изменилась только из-за порядка сортировки, но отражает то же самое
Рис. 3
- Сортируем каналы по их рангу внутри каждой категории
То есть, каналы с самым большим числом подписчиком из каждой категории, будут в центре
Рис.4.
Добавляем еще одну категорию - страна.
- Категории сортируются от центра круга от меньшей (где меньше всего число каналов) к большей
- Круги сортируются от центра по числу подписчиков от наименьшего к наибольшему.
- По стране канала от меньшему к большему
Появляются 'кольца' для каждой страны.
Здесь стоит остановиться на порядке разбиения данных (иерархии уровней данных):
- Сначала разбиваем на страны
- Далее внутри каждой страны разбиваем на категории
- Потом разбиваем на каналы внутри каждой категории
Порядок разбиения задается порядком следования полей на панели Marks, сверху вниз.
Как видим, можно включать любое число уровней данных в грануляцию и настраивать сортировку на каждом уровне по-своему. Иерархия уровней данных также важна. Это справедливо для других диаграмм тоже. Сортировку и порядок разбиения данных иногда недооценивают при построении диаграмм, но, как видим, они существенно могут изменить вид и смысл диаграммы.
DATAVIZ футболка и каналы Telegram
Сделал себе футболку с топом телеграм каналов. На футболке - диаграмма packed bubbles, где показан top 1000 каналов Telegram, площади кругов пропорциональны числу подписчиков. Несколькими постами выше рассказывал как парсил данные и делал виз в p5.js.
Давно хотел попробовать что-то на одежде сделать, но не получалось нормально. Проблема в том, что обычно печатают на готовых футболках, и полная запечатка не получается. Футболку для Матемаркетинга благополучно заруинили таким способом - не получилась в хорошем качестве.
Недавно в канале Data Comics был пост про футболку из R-гексагонов. Там футболка полностью запечатана. Погуглил и нашел, что называется это 'сублимационная печать'. Непросто было найти (не в Москве и Питере) как сделать 1 штуку (от 10 и выше минимум делают) нормального качества, но оказалось что есть онлайн конструктор куда можно загружать изображения. В конструкторе изображения подгоняются, зумятся и т.д., то есть, точно можно определить где и что печатать. После этого финальные выкройки высылаются на почту для финального согласования. На производстве рукава, передняя часть и спина запечатываются отдельно, после чего футболка сшивается. Поэтому, должно быть швейное производство. На хб не печатают - только на синтетике. В итоге, получилось очень круто.
Если есть свои работы в датавизе, всегда интересно сделать подобный мерч, и он будет уникальным.
Ссылку на производство не оставляю, чтобы не рекламировать. Но в больших городах такое можно найти.
Можно одевать и ехать на профильную конфу. Например, tgconf. Или на конфу по датавизу. Или в Сан Диего на TC 25.
Сделал себе футболку с топом телеграм каналов. На футболке - диаграмма packed bubbles, где показан top 1000 каналов Telegram, площади кругов пропорциональны числу подписчиков. Несколькими постами выше рассказывал как парсил данные и делал виз в p5.js.
Давно хотел попробовать что-то на одежде сделать, но не получалось нормально. Проблема в том, что обычно печатают на готовых футболках, и полная запечатка не получается. Футболку для Матемаркетинга благополучно заруинили таким способом - не получилась в хорошем качестве.
Недавно в канале Data Comics был пост про футболку из R-гексагонов. Там футболка полностью запечатана. Погуглил и нашел, что называется это 'сублимационная печать'. Непросто было найти (не в Москве и Питере) как сделать 1 штуку (от 10 и выше минимум делают) нормального качества, но оказалось что есть онлайн конструктор куда можно загружать изображения. В конструкторе изображения подгоняются, зумятся и т.д., то есть, точно можно определить где и что печатать. После этого финальные выкройки высылаются на почту для финального согласования. На производстве рукава, передняя часть и спина запечатываются отдельно, после чего футболка сшивается. Поэтому, должно быть швейное производство. На хб не печатают - только на синтетике. В итоге, получилось очень круто.
Если есть свои работы в датавизе, всегда интересно сделать подобный мерч, и он будет уникальным.
Ссылку на производство не оставляю, чтобы не рекламировать. Но в больших городах такое можно найти.
Можно одевать и ехать на профильную конфу. Например, tgconf. Или на конфу по датавизу. Или в Сан Диего на TC 25.
Зарплаты аналитиков в США и парсинг Glassdoor
Про зарплаты в русскоязычном секторе IT я писал месяц назад. Дашборд по данным Getmatch ушёл в народ, его опубликовал Getmatch в своём блоге, много отзывов прилетело. В целом, инструмент оценки вакансий и зарплатных вилок получился неплохой, там около 10 000 просмотров, и каждый день его мониторят. Данные обновляются каждые 2 недели.
Поэтому интересно посмотреть что по вакансиям и ЗП в других странах. Один из топов ресурсов поиска работы - портал Glassdoor.com. Первоначально, идея Glassdoor была в шеринге зарплат - ты говоришь свою ЗП, тебе дают доступ до ЗП других людей, естественно, усредненных. То есть, можно примерно понять по отрасли вилку. На этой идее сервис сильно вырос. Интересно сейчас почитать статью на Хабре от 2008 года, когда Glassdoor ещё был стартапом.
Glassdoor cейчас - огромная система с оценками работодателей по разным критериям и множеством вакансий по всему миру. Тем интереснее было посмотреть не только зарплатные вилки, но и оценки компаний.
Решил собрать зарплаты Data Analyst в США на основе опубликованных вакансий, разделить из по штатам, городам, отраслям, секторам экономики, оценкам компаний и т.д.. Открытых данных с такой детализацией не нашел, поэтому, собирал сам. Web Scraping больших порталов обычно сложнее, чем стандартных сайтов. Приходится обходить защиты от скрейпинга. Использовал Playwright и подключение к Хрому в debug режиме.
В итоге, собрал около 7000 открытых вакансий с описанием. На kaggle подобной детализации нет, поэтому, причешу и закину туда на праздниках.
Для США зарплаты указываются в Gross, то есть, без учета налогов. В разных вакансиях платят по дням, месяцам или же указаны годовые суммы.
Сделал дашборд в Tableau 'Glassdoor Data Analyst Jobs' (вакансии только с зарплатами), там суммы пересчитываются, и можно смотреть нормализованные ЗП в день, месяц или год. В дашборде есть зарплатные вилки, много категорий по которым можно фильтроваться, диаграммы распределений и HEX карта США, где можно посмотреть в каком штате выше ЗП. Можно менять грануляцию данных, сравнивать отрасли, компании (Apple и Amazon например).
Есть ещё рейтинги компаний по разным условиям, рейтинги CEO и др. Детально можно смотреть таблицу с вакансиями и переходить на страницу вакансии. В общем, в разных разрезах можно много всего посмотреть.
Из техники: сделал диаграмму рейтингов со звездами как на сайте, поигрался с фоном дашборда - его можно менять. Немного попробовал Glassmorphism в UI.
Несколько цифр:
- Средняя почасовая ЗП - $45
- Максимальная почасовая ЗП - $150
- Средняя месячная ЗП - $7053
- Средняя годовая ЗП - $94899
- Максимальная годовая ЗП - $388000
Для поиска других инсайтов фильтруйтесь в даше.
Скрейпер и парсер ещё буду оптимизировать. Дашборд тоже планирую развивать и обновлять данные раз в 2 недели. И можно будет пособирать данные по вакансиям DS и DE, например.
Про зарплаты в русскоязычном секторе IT я писал месяц назад. Дашборд по данным Getmatch ушёл в народ, его опубликовал Getmatch в своём блоге, много отзывов прилетело. В целом, инструмент оценки вакансий и зарплатных вилок получился неплохой, там около 10 000 просмотров, и каждый день его мониторят. Данные обновляются каждые 2 недели.
Поэтому интересно посмотреть что по вакансиям и ЗП в других странах. Один из топов ресурсов поиска работы - портал Glassdoor.com. Первоначально, идея Glassdoor была в шеринге зарплат - ты говоришь свою ЗП, тебе дают доступ до ЗП других людей, естественно, усредненных. То есть, можно примерно понять по отрасли вилку. На этой идее сервис сильно вырос. Интересно сейчас почитать статью на Хабре от 2008 года, когда Glassdoor ещё был стартапом.
Glassdoor cейчас - огромная система с оценками работодателей по разным критериям и множеством вакансий по всему миру. Тем интереснее было посмотреть не только зарплатные вилки, но и оценки компаний.
Решил собрать зарплаты Data Analyst в США на основе опубликованных вакансий, разделить из по штатам, городам, отраслям, секторам экономики, оценкам компаний и т.д.. Открытых данных с такой детализацией не нашел, поэтому, собирал сам. Web Scraping больших порталов обычно сложнее, чем стандартных сайтов. Приходится обходить защиты от скрейпинга. Использовал Playwright и подключение к Хрому в debug режиме.
В итоге, собрал около 7000 открытых вакансий с описанием. На kaggle подобной детализации нет, поэтому, причешу и закину туда на праздниках.
Для США зарплаты указываются в Gross, то есть, без учета налогов. В разных вакансиях платят по дням, месяцам или же указаны годовые суммы.
Сделал дашборд в Tableau 'Glassdoor Data Analyst Jobs' (вакансии только с зарплатами), там суммы пересчитываются, и можно смотреть нормализованные ЗП в день, месяц или год. В дашборде есть зарплатные вилки, много категорий по которым можно фильтроваться, диаграммы распределений и HEX карта США, где можно посмотреть в каком штате выше ЗП. Можно менять грануляцию данных, сравнивать отрасли, компании (Apple и Amazon например).
Есть ещё рейтинги компаний по разным условиям, рейтинги CEO и др. Детально можно смотреть таблицу с вакансиями и переходить на страницу вакансии. В общем, в разных разрезах можно много всего посмотреть.
Из техники: сделал диаграмму рейтингов со звездами как на сайте, поигрался с фоном дашборда - его можно менять. Немного попробовал Glassmorphism в UI.
Несколько цифр:
- Средняя почасовая ЗП - $45
- Максимальная почасовая ЗП - $150
- Средняя месячная ЗП - $7053
- Средняя годовая ЗП - $94899
- Максимальная годовая ЗП - $388000
Для поиска других инсайтов фильтруйтесь в даше.
Скрейпер и парсер ещё буду оптимизировать. Дашборд тоже планирую развивать и обновлять данные раз в 2 недели. И можно будет пособирать данные по вакансиям DS и DE, например.
Tableau Public 2024 и 1 000 000 визуализаций
В блоге Tableau подвели итоги 2024 года Tableau Public.
За год на портале было опубликовано более 1 млн визуализаций. Это колоссальная цифра. 2 года назад на паблике пробил 8 млн визов.
Основные темы: Олимпиада 2024, фильмы, спорт, бизнес, глобальные тренды.
В блоге представили 'Curated Collection' из 49 визуализаций и 24 самые популярные визуализации за 2024 год.
Одна из моих визуализаций 'NBA Scorigami' попала в этот список. В канале я рассказывал про неё. В самых популярных есть 2 даша Насти Кузнецовой, это очень круто!
Tableau Public до сих пор остаётся самым большим порталом визуализаций и источником вдохновения. Сюда приходят фанаты Power BI, Qlik, R и других инструментов. Много что можно почерпнуть и для рабочих проектов. В этом году больше бизнес-дашбордов в трендах. Но, надо сказать, далеко не все они нормально ложатся на здоровый прод - слишком много ресурсов уйдёт на разработку и поддержание, да и цели в бизнесе несколько иные.
Довольно продуктивный год выдался на публичные проекты. На паблике опубликовал 14 визуализаций. Больше ушёл в инструменты поиска и подготовки данных на питоне, использовал js и много экспериментировал с цветом и геометрией. Сейчас нравится находить и собирать данные, которые никто не собирал, поэтому много скрейперов и парсеров сделал. Реанимировал kaggle - там тоже начал датасеты собирать. Канал этот в мае завёл 😀.
Ещё выступил на 3х Tableau User Group:
- Russian TUG
- Tableau Public TUG
- Cyprus TUG
Осталось до 31 января отправить работы на Information is Beautiful Awards.
В блоге Tableau подвели итоги 2024 года Tableau Public.
За год на портале было опубликовано более 1 млн визуализаций. Это колоссальная цифра. 2 года назад на паблике пробил 8 млн визов.
Основные темы: Олимпиада 2024, фильмы, спорт, бизнес, глобальные тренды.
В блоге представили 'Curated Collection' из 49 визуализаций и 24 самые популярные визуализации за 2024 год.
Одна из моих визуализаций 'NBA Scorigami' попала в этот список. В канале я рассказывал про неё. В самых популярных есть 2 даша Насти Кузнецовой, это очень круто!
Tableau Public до сих пор остаётся самым большим порталом визуализаций и источником вдохновения. Сюда приходят фанаты Power BI, Qlik, R и других инструментов. Много что можно почерпнуть и для рабочих проектов. В этом году больше бизнес-дашбордов в трендах. Но, надо сказать, далеко не все они нормально ложатся на здоровый прод - слишком много ресурсов уйдёт на разработку и поддержание, да и цели в бизнесе несколько иные.
Довольно продуктивный год выдался на публичные проекты. На паблике опубликовал 14 визуализаций. Больше ушёл в инструменты поиска и подготовки данных на питоне, использовал js и много экспериментировал с цветом и геометрией. Сейчас нравится находить и собирать данные, которые никто не собирал, поэтому много скрейперов и парсеров сделал. Реанимировал kaggle - там тоже начал датасеты собирать. Канал этот в мае завёл 😀.
Ещё выступил на 3х Tableau User Group:
- Russian TUG
- Tableau Public TUG
- Cyprus TUG
Осталось до 31 января отправить работы на Information is Beautiful Awards.