양방향 막대 그래프 만들기

세로로 같은 축을 공유하는 두 개의 범례에 대해 좌우로 막대 그래프를 만들 순 없을까?

영어로는 Diverging Chart라고 부르며, 한글로는 양방향 막대 그래프 또는 좌우 대칭형 그래프라고 부르는 듯합니다. 세로 축은 공유하면서, 가로 축은 서로 반대방향으로 뻗어나가는 그래프를 일컫는 말입니다.
이를 태블로에서 구현하는 방법은 몇 가지가 있습니다. 워크시트를 두 개로 나누어 작업한 후, 각각 필터를 걸어 대시보드에서 합치는 방법이 있고, 하나의 워크시트에서 작업할 수도 있습니다.
오늘은 하나의 워크시트에서 이중축을 사용해 이같은 차트를 만드는 방법에 대해 알려드리겠습니다.

데이터 다운로드

통계청이 제공하는 1998년부터 2018년까지의 대한민국 출산인구 (성별 포함) 통계 데이터를 사용했습니다.
대한민국출생아수및성비_1998-2018

완성 대시보드

대시보드 샘플 다운로드

https://public.tableau.com/profile/soyoung.park#!/vizhome/TableauTips__15715514246830/TableauTips_

HOW TO

1. [연도] 필드를 차원으로 이동

샘플 데이터에는 [연도],[성별],[국가별],[출생인구] 총 네 개의 필드가 있습니다. 이 중, [연도] 필드가 숫자로 인식되어 측정값 선반에 있다면, 드래그하여 차원 선반으로 이동해줍니다.

2. 일반적인 막대 그래프 만들기

[연도],[출생인구]를 각각 행과 열 선반에 드래그하여 막대차트를 그립니다.

마크의 색상 선반에 [성별] 필드를 드래그하여 올리고, 원하는 색상으로 범례를 변경합니다.

적용결과, 하나의 막대 그래프가 ‘성별’을 기준으로 나뉘지만, 축의 합계는 남여의 출생인구수를 연도별로 합산한 값입니다.

3. 계산된 필드 만들기

태블로에서 계산식을 만들기 전에 우리가 원하는 결과를 얻기 위해 데이터의 모양을 어떻게 가공해야 하는지 고민해야 합니다. 하나의 막대 그래프에서 양쪽으로 축이 생기는 경우는 어떤 경우일까요?

음의 축과 양의 축이 있을 때 입니다.
원데이터의 가공 없이 계산식으로 이를 구현해보겠습니다.

[성별] 필드에는 ‘남아’와 ‘여아’라는 두 가지 케이스만 존재합니다. IF문을 사용하면 [성별]이 ‘남아’인 경우에 [출생인구]를 양의 축에 나타내고, ‘여아’인 경우에 [출생인구]를 음의 축에 나타내도록 계산식을 만들 수 있습니다.

4. [출생인구] > [출생인구_FOR GRAPH]로 열선반의 필드 변경하기

열 선반의 [출생인구] 자리에 계산식으로 만든 [출생인구_FOR GRAPH] 필드를 올려줍니다. 이 때, [출생인구] 필드 바로 위에 덮어씌우듯 올려주면 대체됩니다.

5. [연도] 레이블을 올릴 AVG(0) 만들기

이제, 왼쪽 머릿글이 아닌 양 축의 가운데에 [연도] 레이블을 표시하는 것이 남았습니다.

이를 위해서는 [연도] 레이블이 올라갈 마크 선반을 만들기 위해서 AVG(0)이라는 임의의 값을 열 선반에 입력해주어야 합니다. 열 선반에 마우스 커서를 갖다대고, 더블클릭하면 값을 직접 입력할 수 있습니다.

적용하면 이와 같이 열 기준 축이 하나 더 생기면서 [AVG(0)]에 대한 마크 선반이 생성됩니다.

6. [AVG(0)] 마크 선반의 유형 변경하고, [연도]를 레이블 선반에 올려주기

[AVG(0)]의 마크 선반을 클릭하여 아래의 작업을 진행합니다.

  • 색상 마크에 있는 [성별] 필드를 드랍(제거)합니다.
  • ‘막대’ 유형을 ‘텍스트’ 유형으로 변경합니다.
  • ‘텍스트’ 선반에 [연도] 필드를 드래그하여 올립니다.

7. 이중축으로 합치고 축 동기화하기

[AVG(0)] 필드에서 아래 화살표를 하면 ‘이중 축’ 옵션이 있습니다. 이 기능을 사용하여 두 개의 그래프를 하나로 병합합니다.

‘이중 축’을 적용하면 첫 번째 열 선반, 즉 [출생인구_FOR GRAPH]에 대한 마크 유형이 자동 적용으로 인해 원으로 변경되는데, [출생인구_FOR GRAPH] 마크 선반을 펼쳐, 다시 막대 그래프로 변경해줍니다.

위쪽과 아래쪽에 놓인 축 두 개 중 아무 축에서 오른쪽 마우스 선택한 다음, ‘축 동기화’로 축을 맞춰줍니다.

8. 서식 변경하기

[AVG(0)] 마크의 ‘텍스트’ 서식을 변경해줍니다. 저는 흰색으로 변경하고, 볼드 처리하여 가독성을 높였습니다.

각 축과 행 선반의 [연도]에 대한 ‘머리글 표시’를 해제합니다.

  • 각 축에서 오른쪽 마우스 > 머리글 표시 해제
  • 행 선반의 [연도] > 아래 화살표 > 머리글 표시 해제

서식 > 라인 서식에서 ‘열’에 대한 격자선 및 영(0) 기준선을 ‘없음’으로 설정합니다.

9. [연도] 정렬 순서 변경하기

최근 순으로 표현하기 위해 [연도]의 정렬 순서를 ‘내림차순’으로 변경합니다.

10. 완성된 워크시트

축 머리글을 대신하는 참조선을 추가하여 완성된 워크시트입니다.
참조선의 추가 방법은 이후 포스트에서 이어서 다루겠습니다.

2 thoughts on “양방향 막대 그래프 만들기

    1. 안녕하세요, 계산된 필드 부분을 보시면 여성의 경우, -[출생인구]를 계산하도록 하였습니다. 남성의 경우, 0보다 큰 값으로 표현하고, 여성의 경우 0보다 작은 값으로 표현하여 축이 0을 기준으로 왼쪽 오른쪽으로 그려지는 것입니다. 본문의 3. 계산된 필드 만들기 캡처를 참고하여주세요!

댓글 남기기

태블로위키만의 새로운 소식, 놓칠 수 없겠죠?