import plotly.express as px
data = dict(
number=[39, 27.4, 20.6, 11, 2],
stage=["Website visit", "Downloads", "Potential customers", "Requested price", "invoice sent"])
fig = px.funnel(data, x='number', y='stage')
fig.show()Plotly Funnel 차트 만들기
Funnel Chart(깔대기 차트)는 데이터의 흐름이나 과정을 시각화하기 위한 그래프 유형 중 하나입니다. 여러 세그먼트 또는 카테고리 간의 비교를 강조하는 데 사용됩니다. 각 단계 또는 세그먼트의 크기를 표시하여 이들 간의 상대적인 크기를 시각화로 표현할 수 있습니다.
특히 비즈니스 프로세스, 온라인 판매 흐름, 고객 경로 등과 같은 순차적인 단계로 이루어진 프로세스를 분석하는 데 유용합니다. 각 단계에서 어떤 퍼센트의 항목이 소멸하거나 성공적으로 이동하는지를 보여줍니다.
웹사이트에 방문한 고객의 흐름을 보여주는 Funnel Chart로 동작을 확인합니다.
Funnel 차트는 전달하는 데이터 프레임에 각 흐름의 단계에 대한 값 정보와 단계의 이름을 저장합니다. 총 5단계가 전달되었고 단계의 너비는 값에 따라 결정됩니다.
여러 개의 데이터를 Funnel Chart로 표시하기
비교를 웨해서 여러 개의 데이터를 Funnel Chart로 표시하는 방법을 정리합니다. 비교를 위해 생성한 각 데이터는 단계가 서로 다르게 설정되었습니다. 차트에 어떻게 표시되는 지 확인해보세요.
from plotly import graph_objects as go
fig = go.Figure()
fig.add_trace(go.Funnel(
name = 'Montreal',
y = ["Website visit", "Downloads", "Potential customers", "Requested price"],
x = [100, 90, 81, 72.9],
textinfo = "value+percent initial"))
fig.add_trace(go.Funnel(
name = 'Toronto',
orientation = "h",
y = ["Website visit", "Downloads", "Potential customers", "Requested price", "invoice sent"],
x = [100, 90, 81, 72.9, 65.61],
textposition = "inside",
textinfo = "value+percent previous"))
fig.add_trace(go.Funnel(
name = 'Vancouver',
orientation = "h",
y = ["Website visit", "Downloads", "Potential customers", "Requested price", "invoice sent", "Finalized"],
x = [100, 90, 81, 72.9, 65.61, 59],
textposition = "inside",
textinfo = "value+percent total"))
fig.show()Funnel Chart내부에 표시되는 비율은 textinfo로 전달되는 정보로 설정됩니다. value+percent initial, value+percent previous, value+percent total의 차이를 알아봅니다. 모든 데이터는 초기값 100에서 90%만 다음 단계로 넘어가도록 구성되어 있습니다.
value+percent initial: 현재 단계의 값을 초기값에 대한 비율로 표시합니다.value+percent previous: 현재 단계의 값을 이전 단계에 대한 비율로 표시합니다. 값이 90%로 유지되는 것을 확인할 수 있습니다.value+percent total: 현재 단계의 값을 전체 단계의 총합에 대한 비율로 표시합니다. 첫번째 단계는 전체 단계의 총합으로 나눈 비율이며 와 같이 아래와 같이 계산됩니다. \[21\% = \frac{100 (첫번째 단계 값)}{468.51 (전체 단계 총합)}\]