본문 바로가기

Data

[Tableau] radial chart 만들기

radial chart는 도넛 모양과 비슷하지만, 기존의 막대 차트보다 공간활용도가 높다는 장점, 디자인적으로 더 예쁘게 표현된다는 장점 존재한다.

 

1. 데이터 유니온

 

2. 계산된 필드 생성

2-1. 경로 생성 

1) @path : radial chart는 최대 3사분면까지 그려짐 따라서 시작각도 0부터 270도까지 생성

 

IIF([테이블 이름] = "Sheet1", 0, 270)

-> 구간차원 만들기 (구간차원 크기는 1) -> 0부터 1간격으로 270까지 생성됨

 

2) @index : index는 1부터 시작, path 구간차원과 같은 수로 만들어주기 위해 1을 뺌(0~270 까지 생성)

 

INDEX() - 1

 


2-2. rank와 size 생성

category중 구성비율이 순위가 가장 높은 것이 바깥쪽 원이 되어야함
구성 비율에 따라 원의 사이즈가 달라야 함

3) @total_cat_count(category별 count) & @total_count (전체 count)

 

WINDOW_SUM(SUM([Count])) / 2

 

-> 여기서는 소관위원회를 세야 하므로 따로 1로만 이루어진 count 변수를 생성했음

-> 판매를 기준으로 한다면 그냥 sales변수를 넣어주면됨

-> 유니온을 하여 데이터의 행이 2배이므로 2로 나눠줌

 

4) @rank : category 중 가장 많이 count될 수록 큰 순위!!

-> category 개수만큼 순위 생김 (여기서 소관위원회는 18개이므로 rank는 1~18까지 생성)

 

RANK_UNIQUE([@total_cat_count], 'asc')

 

-> 구성비율이 클 수록 시작점의 y좌표가 커야하므로 'asc' 조건 필요

 

5) @percentage: category별 구성비율

 

[@total_cat_count] / [@total_count]

 

6) size : 구성비율에 따른 size

 

[@percentage] / WINDOW_MAX([@percentage])


2-3. 좌표 생성

 

1) @X

 

SIN(RADIANS([@index]*[@size]))*[@rank]

 

2) @Y

 

COS(RADIANS([@index]*[@size]))*[@rank]

 

-> @index : 0~270 따라서 index = 0 일때, X좌표 모두 0, Y좌표는 cos0 = 1 이므로 rank(1~18) 과 같음

 

 

3. 좌표 올리기

**path에서 누락된 값 표시에 반드시 체크 되어 있어야 함

 

-> 라인으로 바꾸고 path 경로에 올리기

-> category 변수 색상에 올리기

-> X, Y 모두 구간차원path를 사용하여 계산 

 

4. 테이블 계산 편집 

 

X,Y 좌표에 사용된 변수는 index, rank, size, path(구간차원)

-> 지금 현재 X,Y의 변수들은 path(구간차원)에만 체크되어있음

 

<X,Y 모두 해당>

index: 그대로 놔두기 (index는 구간차원과 같은 역할 0~270)

rank: rank는 category의 class개수만큼 생성된 변수, 따라서 category만 체크

size, total_count: path(구간차원)과 category 모두 체크, category를 위로 두기 (size는 원의 크기이므로 구간차원과 category 모두 고려해야함)

 

 

완성작 링크

https://public.tableau.com/app/profile/arehoow/viz/TWBX_1__16266092537260/2

 

21대 국회의원 정당별 법안 발의 활동

21대 국회의원의 정당별 법안 발의 활동 내역입니다. 와플차트를 통해 정당별 차지한 의석수를 나타내었습니다. 각각의 원은 21대 국회의원 한명을 의미합니다. 원을 클릭하면 해당되는 정당의 1

public.tableau.com