J'ai vu ce post sur Moz qui présentait un entonnoir marketing segmenté:
Ce genre de chose aurait beaucoup de valeur dans mon travail. Ce que je n'ai aucune idée, c'est comment visualiser les données brutes pour montrer un entonnoir segmenté comme celui-ci. L'idée est que les prospects proviennent de différentes sources (que nous utilisons pour segmenter les données) et passent par plusieurs étapes au moment où ils se convertissent en accord. De chaque étape à l'autre, certains tombent. La largeur de chaque tranche est déterminée par le nombre absolu de dérivations dans chacune. [ EDIT : Notez que l'image utilisée ici pour référence est trompeuse en ce qui concerne les nombres spécifiés à droite de chaque tranche. Il ne semble pas y avoir de relation entre la largeur de la tranche et le nombre. L'image ne doit être prise que comme référence à la conception de l'entonnoir segmenté].
Quoi qu'il en soit, une idée de comment le visualiser? Si possible, j'aimerais avoir un moyen de le faire en Python.
Voici un document Google avec quelques données factices si quelqu'un en a besoin ...
Dans l'attente de vos idées. Merci!
la source
Réponses:
Ce graphique affiche un tableau de contingence bidirectionnel dont les données sont approximativement les suivantes:
Il existe une myriade de façons de construire cette intrigue. Par exemple, vous pouvez calculer les positions de chaque patch rectangulaire de couleur et plaquer séparément chaque patch. En général, cependant, cela aide à trouver une description succincte de la façon dont un tracé représente les données.
Comme point de départ, nous pouvons voir celui-ci comme une variation d'un graphique à barres empilées.
Ce tracé n'a guère besoin d'être décrit: par familiarité, nous savons que chaque ligne de rectangles correspond à chaque ligne du tableau de contingence; que les longueurs des rectangles sont directement proportionnelles à leurs dénombrements; qu'ils ne se chevauchent pas; et que les couleurs correspondent aux colonnes du tableau.
Si nous convertissons ce tableau en un "bloc de données" ou un "tableau de données" ayant une ligne par comptage avec des champs indiquant le nom de la ligne, le nom de la colonne et le nombre, le traçage revient généralement à appeler une fonction appropriée et à spécifier où trouver les noms de ligne, les noms de colonne et les nombres. En utilisant une grammaire d' implémentation graphique (le package pour ), cela ressemblerait à quelque chose commeX
ggplot2
R
Les détails du graphique, tels que la largeur d'une rangée de barres et les couleurs à utiliser, doivent généralement être stipulés explicitement. La façon dont cela se fait dépend de l'environnement de traçage (et n'a donc que peu d'intérêt: il suffit de le rechercher).
Cette implémentation particulière de la grammaire des graphiques offre peu de flexibilité dans le positionnement des barres. Une façon de produire l'apparence souhaitée, avec un minimum d'effort, consiste à insérer une catégorie invisible à la base de chaque barre afin que les barres soient centrées. Un peu de réflexion suggère que le faux compte nécessaire pour centrer chaque barre doit être la moyenne de la longueur totale de la barre et celle de la barre la plus longue. Pour cet exemple, ce serait une colonne initiale avec les valeurs
Voici le graphique à barres empilées résultant montrant les fausses données en gris clair:
La figure souhaitée est créée en rendant invisibles les graphiques de la fausse colonne:
La description de la grammaire des graphiques de l'intrigue n'a pas besoin de changer: nous avons simplement fourni une table de contingence différente à rendre selon la même description (et a remplacé la couleur par défaut pour la fausse colonne).
commentaires
Ces graphiques sont honnêtes: l'étendue horizontale de chaque patch coloré est directement proportionnelle aux données sous-jacentes, sans distorsion. Les comparer à l'original (dans la question) révèle à quel point sa distorsion est extrême ( Lie Factor de Tufte ).
Si vous souhaitez afficher les détails au bas de l '«entonnoir», pensez à représenter les nombres par zone plutôt que par longueur. Vous pouvez rendre les longueurs des barres proportionnelles aux racines carrées des longueurs totales et leurs largeurs (dans le sens vertical) également proportionnelles aux racines carrées. Maintenant, le fond de l '"entonnoir" serait d'environ un vingtième de la longueur la plus longue, plutôt que d'un quatre centième, ce qui permettrait de montrer certains détails. Malheureusement, l'
ggplot2
implémentation ne permet pas de mapper une variable à la largeur de la barre, et donc un contournement plus complexe est nécessaire (celui qui décrit en effet chaque rectangle individuellement). Il existe peut-être une implémentation Python plus flexible.Références
Edward Tufte, L'affichage visuel de l'information quantitative . Cheshire Press 1984.
Leland Wilkinson, La grammaire des graphiques. Springer 2005.
la source
Vous pouvez essayer d'utiliser l'entonnoir segmenté de manière parcellaire en python pour le construire. Voici un tutoriel: https://moderndata.plot.ly/segmented-funnel-charts-in-python-using-plotly/
J'espère que cela t'aides.
la source