Як би ви візуалізували сегментовану воронку? (а ви могли б це зробити з Python?)


9

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

Така річ мала б неабияку цінність у моїй роботі. Я поняття не маю - це візуалізувати необроблені дані, щоб показати сегментовану воронку, як ця. Ідея полягає в тому, що потенційні продажі надходять з різних джерел (які ми використовуємо для сегментації даних за) і проходять кілька етапів до моменту їх перетворення в угоду. З кожного етапу на інший випадає якесь. Ширина кожного зрізу визначається абсолютною кількістю відводів у кожному. [ EDIT : Зауважте, що зображення, використане тут для посилання, вводить в оману, коли мова йде про числа, вказані праворуч від кожного фрагмента. Здається, що між шириною зрізу та кількістю немає залежності. Зображення слід сприймати лише як посилання на дизайн сегментованої воронки].

У будь-якому випадку, будь-яка ідея, як її візуалізувати? Якщо можливо, я б хотів, щоб це було так в Python.

Ось Документ Google з деякими фіктивними даними, якщо комусь потрібні ...

Чекаємо ваших розумінь. Дякую!


5
Я вважаю ілюстрацію заплутаною через вбудований у неї величезний фактор Lie: послідовні рівні "воронки" використовують різні масштаби, які змінюються нерегулярно. Таким чином, ширини смуг не визначаються абсолютними числами в кожному - принаймні, не будь-яким легко зрозумілим або візуалізованим способом. Отже, що ви запитуєте: чи є кращі способи візуалізації таких даних або як створити цю графіку на Python?
whuber

Для роботи в будь-якому програмному забезпеченні, як правило, можна просто включити категорію зміщення для штабелів, а потім зробити їх невидимими. Ось приклад із тією ж електронною таблицею Google. Ви можете бачити, що це неефективно саме. для категорій, які в цьому прикладі скорочені ні до чого.
Енді Ш

1
@whuber Привіт. Не впевнений, що я слідую. Кожен рівень - це абсолютні числа ... і кожен рівень є підгрупою попереднього. Поясніть, будь ласка, чому тоді масштаб змінюється нерегулярно. Дякую!
Оптимеш

3
Верхній сегмент представляє 1,5 мільйона відвідувань і охоплює приблизно 500 пікселів на моєму екрані: один піксель = 3000 відвідувань. У нижньому сегменті представлено 5000 відвідувань і на моєму екрані розміщено приблизно 150 пікселів, а не менше 2 (як @Andy вказував на своєму прикладі). Це перебільшення приблизно від 100 до 1. Оскільки графіка в цьому питанні, мабуть, не переймається таким перебільшенням, то, схоже, немає сенсу змінювати сегменти: ви отримаєте кращу інформацію, зробивши їх однаковими по довжині та графіці було б менш оманливим.
whuber

1
@whuber О, я бачу, що ти маєш на увазі зараз. Так, я щойно привів це зображення як приклад до того, що я хочу зробити візуально. Самі цифри вводять в оману, без сумніву.
Оптимеш

Відповіді:


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: Складена гістограма.

Цей сюжет ледве потребує опису: завдяки ознайомленню ми знаємо, що кожному рядку прямокутників відповідає кожен ряд таблиці обставин; що довжини прямокутників прямо пропорційні їх кількості; щоб вони не перетиналися; і що кольори відповідають стовпцям таблиці.

Якщо ми перетворимо цю таблицю в "кадр даних" або "таблицю даних" Xмаючи один рядок на кожну кількість з полями, що вказують назву рядка, назву стовпця та кількість, а потім побудувати її графік зазвичай означає виклик відповідної функції та визначення місця пошуку назв рядків, назв стовпців та підрахунків. З використанням реалізації Grammar of Graphics ( ggplot2пакет для R) це виглядатиме приблизно так

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.

Леланд Вілкінсон, граматика графіки. Спрингер 2005.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.