Невероятные шедевры, созданные с помощью Matplotlib
Невероятные шедевры, созданные с помощью Matplotlib
Неважно, как сильно вы пытаетесь быть хорошим в чём-то, всегда найдутся другие люди, делающие это намного лучше. Таким примерам нечего завидовать, ими нужно вдохновляться.
Показательный пример: эти семь шедевров Matplotlib. Я собрал их из блокнотов Kaggle с золотыми медалями, которые привлекли внимание тысяч людей.
Matplotlib — одна из самых мощных библиотек в Python, и если вы отдадите её гению с творческим подходом, вы получите интересный результат.
1. История Нетфликс
Как следует из названия, это история Netflix с 1997 по 2021 год. Что сразу бросается в глаза, так это простота сюжета и его информативность.
Люди часто думают об истории линейно, и использование одной линии для временной шкалы эффективно отражает это поведение. Но вся ли это история?
Более крупные события кодируются более крупными точками, а промежуточные события представляются более мелкими точками, немного удаленными от временной шкалы. Автор также добавляет элемент индивидуальности в мероприятие по запуску в Великобритании в 2012 году.
Этот график представляет собой комбинацию четырех важнейших компонентов:
- Простая горизонтальная линия, созданная с помощью
hline
- Три диаграммы рассеяния для рисования точек разного размера
- График с одним стеблем для создания вертикальных усов с использованием
plt.stem
- Умелое использование текста на разных уровнях для отображения дополнительных сообщений и различных стилизованных отметок осей.
2. Распределение рейтинга фильмов по сравнению с телешоу на Netflix
Как бы вы отобразили эту информацию? Этот график, несомненно, превзошел бы неуклюжую столбчатую диаграмму, которую я бы придумал. Из сюжета видно, что количество фильмов в каждой рейтинговой категории преобладает над количеством сериалов.
Отображение этой информации в виде совместной гистограммы, безусловно, поможет. Тем не менее, отображение полос телешоу под фильмами предлагает лучший и уникальный способ представить это господство.
Также хочу обратить ваше внимание на то, что сюжет полностью лишен хлама — никаких лишних осей, текстов, корешков и всего того, что не придает непосредственной ценности подаче информации.
3. Количество контента, добавленного на Netflix за последние годы
Этот график точен с точки зрения отображения значения, которое меняется с течением времени.
Да, это простой линейный график, но что делает его уникальным, так это расположение отображения определенных элементов.
Во-первых, это легенда. Он нетрадиционный — нет скучного списка предметов внутри коробки, а его расположение в левом нижнем углу делает его почти невидимым и вплетается в фон. Каким-то образом вы знаете, что красный — для фильмов, а черный — для телешоу, хотя вам и не нужно на это смотреть.
Также автор использует блок текста в верхнем левом углу. Преимущество этого текстового описания двоякое: оно скрывает огромное пустое пространство, которое в противном случае сделало бы сюжет пресным, и указывает на ключевые наблюдения, освобождая наблюдателя от пауз и самостоятельных выводов.
Далее идет ось Y. Бьюсь об заклад, вы даже не заметили, что она расположена справа, напротив того места, где обычно находится. Этот факт даже не регистрируется в вашем мозгу без пристального внимания.
В этом секрет мощной визуализации данных — если всё сделано правильно, наблюдатель даже не заметит, как создается график — он будет занят лишь получением информации.
4. Распределение того, как контент добавлялся на платформу в течение года
Обычно я против круговых диаграмм, как и большинство людей.
Но поверите ли вы мне, если я скажу, что это гистограмма? Это гистограмма с изюминкой — её оси находятся в полярных координатах
Несмотря на то, что сюжет выглядит простым, код, создавший его, сложнее любого другого, что мы увидим сегодня.
Создание каждой панели требует от вас извлечения угла, ширины и высоты, и это даже не самая сложная часть. Обратите внимание на текстовые метки — если вы заметили, для апреля и октября они повернуты на 180° для удобства чтения.
Если вы думаете, что в Matplotlib это значение по умолчанию, вы глубоко ошибаетесь. Это аннотации, искусно размещенные автором. Чтобы они хорошо сочетались с соответствующими стержнями, автор должен рассчитать угол поворота для каждой из них и поместить их в полярные координаты, которые находятся «чуть выше» каждого стержня.
Иногда даже самые простые вещи требуют больших усилий.
5. Задержка между датой выпуска фильма и его запуском на Netflix
Большинство людей отобразят числовые переменные, сгруппированные по категориям, на гистограмме. Напротив, автор использует интервалы, которые не только показывают различия в средних значениях, но и кодируют дополнительный компонент времени по оси X.
Как только вы прочитаете описание, вы сразу поймете, насколько гениален сюжет.
Здесь мы видим ещё один интеллектуальный способ представления легенд — метки легенд помещаются рядом с одним образцом соответствующей категории.
6. Классификация контента Netflix по странам: США и Индия
Это особый тип диаграммы, называемый потоковой диаграммой. Он принадлежит к семейству диаграмм наряду с областными, круговыми и кольцевыми диаграммами.
Он не реализован в Matplotlib, поэтому автору пришлось разработать собственную версию кода для его построения. И что удивительно, решение простое — он просто использует функцию fill_between
, которая граничит с соответствующими точками данных на временной шкале.
График отбрасывает всё, что не добавляет значимости — ни сетки, ни дополнительные деления, ни даже ось Y. Вы можете возразить, что он мог добавить ось Y, чтобы увидеть пропорции контента между двумя округами.
Но поскольку доминирование США очевидно на первый взгляд, нет необходимости ставить дополнительные цифры для дифференциации пропорций.
7. Факторы, которые приводят к сердечным заболеваниям
Да, даже эта визуализация создана исключительно с помощью Matplotlib.
Она выполнена действительно необычно! По-видимому, вы можете связать текстовые аннотации с графиком, используя обширный набор типов стрелок, включая скобки.
Такие аннотации могут добавить еще один пласт информации и приятно удивить аудиторию своей свежестью и уникальностью.
Заключение
Сюжеты в этой статье созданы Джошем из Kaggle (аналитик данных в AWS, с которым у меня нет никакой личной связи, но мне очень нравятся его отличные визуальные эффекты). Я собрал его лучшие визуализации из двух блокнотов.
Если вы похожи на меня и питаете слабость к подобным визуализациям данных, я настоятельно рекомендую вам ознакомиться с Flowing Data, созданным Натаном Яу. Он признанный эксперт в области визуализации данных, и его веб-сайт полон сюжетов и анимаций.