분류 된 퍼널을 어떻게 시각화 하시겠습니까? (그리고 파이썬으로 할 수 있습니까?) [ 편집 : 참조

Moz 에서이 게시물 을 보고 세그먼트 마케팅 퍼널을 제시했습니다.

이런 종류의 일은 내 직업에서 상당히 가치가 있습니다. 내가 모르는 것은 원시 데이터를 시각화하여 이와 같은 세그먼트 퍼널을 표시하는 방법입니다. 아이디어는 영업 리드가 서로 다른 소스 (데이터를 분류하는 데 사용)에서 나오고 거래로 전환 될 때마다 여러 단계를 거치는 것입니다. 각 단계에서 다른 단계로 떨어짐. 각 슬라이스의 너비는 각각의 절대 리드 수에 의해 결정됩니다. [ 편집 : 참조 용으로 여기에 사용 된 이미지가 각 슬라이스의 오른쪽에 지정된 숫자와 관련하여 오도되는 것을 알 수 있습니다. 슬라이스의 너비와 숫자 사이에는 관계가없는 것으로 보입니다. 이미지는 세그먼트 퍼널의 디자인에 대한 참조로만 사용해야합니다].

어쨌든, 그것을 시각화하는 방법에 대한 아이디어가 있습니까? 가능하다면 파이썬에서 그렇게 할 수있는 방법을 갖고 싶습니다.

누군가가 필요한 경우 더미 데이터 가있는 Google 문서 는 다음과 같습니다 .

통찰력을 기대합니다. 감사!



답변

이 그림에는 데이터가 대략 다음과 같은 양방향 우발성 표 가 표시됩니다 .

                      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

이 음모를 구성하는 수많은 방법이 있습니다. 예를 들어, 각 직사각형 패치의 위치를 ​​계산하고 각 패치를 별도로 도금 할 수 있습니다. 그러나 일반적으로 플롯이 데이터를 나타내는 방법에 대한 간결한 설명을 찾는 데 도움이됩니다.

출발점으로, 우리는 이것을 누적 막대 차트 의 변형으로 볼 수 있습니다 .

이 그림에는 설명이 거의 필요하지 않습니다. 친숙 함을 통해 각 직사각형 행이 우연성 테이블의 각 행에 해당한다는 것을 알고 있습니다. 직사각형의 길이는 개수에 직접 비례합니다. 그것들이 겹치지 않도록; 색상은 테이블의 열에 해당합니다.

이 테이블을 “데이터 프레임”또는 “데이터 테이블” 로 변환 하면 행 이름, 열 이름 및 개수를 나타내는 필드가있는 카운트 당 하나의 행이있는 를 표시하면 일반적으로 적절한 함수를 호출하고 찾을 위치를 지정합니다. 행 이름, 열 이름 및 개수 사용 문법 그래픽의 구현합니다 ( 대한 패키지 )이 같이 보일 것을

X

ggplot2R

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

막대의 너비와 사용할 색상과 같은 그래픽의 세부 사항은 일반적으로 명시 적으로 규정해야합니다. 그것이 수행되는 방법은 플로팅 환경에 달려 있습니다 (그리고 상대적으로 관심이 적습니다.

Grammar of Graphics의이 특정 구현은 막대 위치를 지정할 때 유연성이 거의 없습니다. 최소한의 노력으로 원하는 모양을 만드는 한 가지 방법은 막대가 가운데에 오도록 각 막대의 바닥에 보이지 않는 범주를 삽입하는 것입니다. 약간의 생각은 각 막대를 중앙에 배치하는 데 필요한 가짜 수는 막대의 총 길이의 평균과 가장 긴 막대의 평균 수 여야 함을 나타냅니다. 이 예에서는 값이있는 초기 열입니다.

 254478.0       0.0  301115.0  897955.0  993610.5 1019817.0 

다음은 가짜 데이터를 연한 회색으로 표시하는 누적 막대 그래프입니다.

원하는 열은 가짜 열의 그래픽을 보이지 않게하여 생성됩니다.

플롯 의 그래픽 문법 설명 은 변경할 필요가 없습니다. 동일한 설명에 따라 렌더링 될 다른 우발성 테이블을 제공했습니다 (가짜 열의 기본 색상 할당을 무시 함).

코멘트

이 그래픽은 정직합니다. 각 컬러 패치의 수평 범위는 왜곡없이 기본 데이터에 정비례합니다. 그것들을 원래의 (질문에서) 비교하면 왜곡이 얼마나 극단인지 (Tufte ‘s Lie Factor ) 가 드러납니다 .

‘퍼널’하단에 세부 정보를 표시하려면 길이가 아닌 영역을 기준으로 카운트를 표시하는 것이 좋습니다. 막대의 길이를 전체 길이 의 제곱근에 비례 하고 너비 (수직 방향)를 제곱근에 비례하도록 만들 수 있습니다. 이제 ‘퍼널’의 맨 아래는 4 분의 1이 아닌 가장 긴 길이의 1 분의 1이되어 세부 사항을 보여줄 수 있습니다. 불행히도, ggplot2구현에서는 변수를 막대 너비에 매핑 할 수 없으므로보다 복잡한 해결 방법이 필요합니다 (각 사각형을 개별적으로 설명합니다). 아마도 더 유연한 파이썬 구현이있을 것입니다.

참고 문헌

Edward Tufte, 양적 정보의 시각적 표시 . 체셔 프레스 1984.

Leland Wilkinson, 그래픽 문법. Springer 2005.


답변

파이썬으로 플롯 된 세그먼트 깔때기를 사용하여 빌드 할 수 있습니다. 자습서는 다음과 같습니다.
https://moderndata.plot.ly/segmented-funnel-charts-in-python-using-plotly/

도움이 되었기를 바랍니다.