Как бы вы визуализировали сегментированную воронку? (а вы могли бы сделать это с Python?)

9

Я видел этот пост на Moz, который представил сегментированную маркетинговую воронку:введите описание изображения здесь

Такие вещи будут иметь большую ценность в моей работе. Я понятия не имею, как визуализировать необработанные данные, чтобы показать сегментированную воронку, подобную этой. Идея состоит в том, что коммерческие предложения поступают из разных источников (которые мы используем для сегментирования данных) и проходят несколько этапов к тому времени, когда они преобразуются в сделку. От каждого этапа к другому некоторые отпадают. Ширина каждого среза определяется абсолютным количеством отведений в каждом. [ РЕДАКТИРОВАТЬ : обратите внимание, что изображение, используемое здесь для справки, вводит в заблуждение, когда речь идет о числах, указанных справа от каждого среза. Кажется, нет никакой связи между шириной среза и числом. Изображение должно быть взято только как ссылка на конструкцию сегментированной воронки].

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

Вот Google Doc с некоторыми фиктивными данными, если кому-то нужны ...

Ждем ваших идей. Спасибо!

Optimesh
источник
5
Я нахожу иллюстрацию запутанной из-за огромного фактора Ли, встроенного в него: последовательные уровни «воронки» используют разные шкалы, которые изменяются нерегулярно. Таким образом, ширина полос не определяется абсолютными числами в каждой - по крайней мере, не так легко понять или визуализировать. Итак, что вы спрашиваете: есть ли лучшие способы визуализации таких данных или как создать эту графику в Python?
whuber
Для работы с любым программным обеспечением вы можете просто включить категорию смещения для столбцов с накоплением, а затем сделать ее невидимой. Вот пример с той же самой таблицей Google. Вы можете видеть, что это неэффективно, а именно. для категорий, которые сократились до нуля в этом примере.
Энди W
1
@whuber Привет. Не уверен, что я следую. Каждый уровень является абсолютными числами ... и каждый уровень является подгруппой предыдущего. Пожалуйста, объясните, почему шкала меняется нерегулярно. Спасибо!
Optimesh
3
Верхний сегмент представляет 1,5 миллиона посещений и занимает примерно 500 пикселей на моем экране: один пиксель = 3000 посещений. Нижний сегмент представляет 5000 посещений и занимает около 150 пикселей на моем экране, а не менее 2 (как указал @Andy на своем примере). Это преувеличение около 100 к 1. Поскольку рисунок в этом вопросе, похоже, не заботится о таком преувеличении, то, похоже, нет смысла перемасштабировать сегменты: вы бы получили более качественную информацию, сделав их одинаковой длины и графические будет менее обманчивым.
whuber
1
@ whuber О, теперь я понимаю, что ты имеешь в виду. Да, я просто привел это изображение в качестве примера того, что я хочу сделать визуально. Сами цифры вводят в заблуждение, без сомнения.
Optimesh

Ответы:

3

На этом графике показана двусторонняя таблица непредвиденных обстоятельств , данные которой приблизительно такие:

                      Branded Unbranded Social Referring Direct   RSS
First-time...          177276    472737  88638    265915 472737 59092
Return Visits...       236002    629339 118001    354003 629339 78667
4+ Visits in ...       166514    444037  83257    249771 444037 55505
10+ Visit in ...        28782     76751  14391     43172  76751  9594
At Least One Visit...    6707     17886   3354     10061  17886  2236
Last Touch...             660      1759    330       989   1759   220

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

В качестве отправной точки мы можем рассматривать этот вариант как вариацию столбчатой ​​диаграммы с накоплением.

Рисунок 1: гистограмма с накоплением.

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

Иксggplot2R

ggplot(X, aes(Outcome, Count, fill=Referral)) + geom_col() 

Детали графики, такие как ширина ряда столбцов и используемые цвета, как правило, должны быть четко указаны. Как это сделать, зависит от графического окружения (и поэтому это не представляет особого интереса: вам просто нужно посмотреть).

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

 254478.0       0.0  301115.0  897955.0  993610.5 1019817.0 

Вот итоговая столбчатая диаграмма, на которой показаны поддельные данные светло-серого цвета:

фигура 2

Нужная фигура создается, делая графику для поддельного столбца невидимой:

Рисунок 3

Грамматика графики описанию сюжета не нужно менять: мы просто поставили другую таблицу на случае непредвиденных обстоятельств , которая будет предоставляться в соответствии с тем же описанием (и отменяет назначение цвета по умолчанию для столбца поддельного).

Комментарии

Эти графики честны: горизонтальная протяженность каждого цветного пятна прямо пропорциональна исходным данным, без искажений. Сравнение их с оригиналом (в вопросе) показывает, насколько экстремальным является его искажение ( Фактор Лжи Туфте ).

Если необходимо отобразить детали в нижней части «воронки», рассмотрите возможность представления количества по площади, а не по длине. Вы можете сделать длины стержней пропорциональными квадратным корням из общей длины, а их ширины (в вертикальном направлении) также пропорциональными квадратным корням. Теперь дно «воронки» будет иметь длину около одной двадцатой по длине, а не одну четвертую часть, что позволяет показать некоторые детали. К сожалению, ggplot2реализация не позволяет отобразить переменную на ширину стержня, поэтому необходим более сложный обходной путь (который действительно описывает каждый прямоугольник отдельно). Возможно, есть реализация Python, которая более гибкая.

Ссылки

Эдвард Туфте, Визуальное отображение количественной информации . Чешир Пресс, 1984.

Лиланд Уилкинсон, Грамматика графики. Springer 2005.

Whuber
источник