본문 바로가기
IT world/Tableau

[Tableau_Chart] Gauge Chart 생성 및 적용하기

by Serena H 2022. 9. 13.

Gauge Chart 예시

 

  1. Gauge Chart에 적용하고 싶은 '원본' 데이터를 구비합니다.
  2. Gauge를 표현할 '별도' 데이터 소스를 생성합니다.(첨부파일을 바로 사용하셔도 됩니다.)
    • 3개의 열을 생성 
    • Point: 1~20, [Value]와 [Level]에 따른 나머지 행에는 'null' 값
    • Value: 0~401, 이 데이터를 5번 반복
    • Level: 1~5, [Value] 열에 있는 데이터의 n번째 반복에 따라 [Level]의 데이터를 입력
      ex. Value열에서 0~401 데이터가 1번째 적혀졌다면 Level의 값은 '1'
            Value열에서 0~401 데이터가 2번째 적혀졌다면 Level의 값은 '2'
      → 즉, Level 열에서 1~5의 값이 각각 402개씩 입력
  3. 데이터 원본에 별도 데이터를 연결하고 추출합니다. 
    • 연결 방법
      • '원본 데이터'를 먼저 Tableau에 연결합니다. 
      • Tableau의 [데이터 원본] 탭에서 '별도 데이터'를 추가합니다.
      • [데이터 원본] 탭에서 '원본 데이터' 옆으로 '별도 데이터'를 drag&drop 합니다. 
      • 두 데이터 사이에 새로 생긴 라인을 클릭 후 관계 생성을 위해서 아래와 같이 두 데이터에 모두 입력하여 논리적 조인(관계)를 만듭니다. → '필드 선택' - '관계 계산 만들기' - 숫자 '1' 기입
  4. Gauge Chart 생성: [새 워크시트] 탭으로 돌아와서 아래 작업을 수행합니다. 
    1. 5개의 float 매개변수 생성 
      • [Level 1], [Level 2], [Level 3]
        • 허용 가능한 값(Allowable values): 범위(Range)
        • 최소값(Minimum): 0
        • 최대값(Maximum): 1
        • 단계 크기(Step size): 0.01
        • 각 현재 값(Current value)은 .4, .6, .8로 설정합니다. 
      • [Over Target]
        • 허용 가능한 값(Allowable values): 범위(Range)
        • 최소값(Minimum): 1
        • 최대값(Maximum): 1.5
        • 단계 크기(Step size): 0.01
        • 현재 값(Current value)은 1.1로 설정합니다. 
      • [Size]
        • 허용 가능한 값(Allowable values): 범위(Range)
        • 최소값(Minimum): 0
        • 최대값(Maximum): 1
        • 단계 크기(Step size): 0.01
        • 현재 값(Current value)은 .2로 설정합니다. 
    2. 다이얼(Dial) 구성할 4개의 계산된 필드를 만듭니다.  
      • Depth: 다이얼의 각 부분이 얼마나 멀리 호를 가질지 계산합니다. 
        CASE [Level]
        WHEN 1 THEN [Level 1]
        WHEN 2 THEN [Level 2]
        WHEN 3 THEN [Level 3]
        WHEN 4 THEN 1
        WHEN 5 THEN [Over Target]
        END
      • Dial Degrees(다이얼 각도)
        PI()*(IF [Value] <= 200
        THEN [Value]/200
        ELSEIF [Value] <= 401
        THEN (200 - ([Value]-201))/200
        END)*([Depth]/[Over Target])
      • Dial Radius(다이얼 반경)
        IF [Value] <= 200
        THEN 1
        ELSEIF [Value] <= 401
        THEN 1 - [Size]
        END
      • Dial: 다이얼 각도와 다이얼 반경을 사용하여 다이얼을 생성합니다. 
        MAKEPOINT(
            [Dial Radius]*SIN([Dial Degrees]),
            -[Dial Radius]*COS([Dial Degrees]))
    3. 생성한 [Dial] 필드를 캔버스에 drag&drop하면 경도(Longitude)와 위도(Latitude)가 열 및 행 선반에 추가됩니다. 
      - [Level] 필드를 마크의 색상으로 drag&drop 후 '불연속, 차원'으로 설정합니다. 
      - 마크 유형을 다각형(polygon)으로 변경합니다. 
      - [Value] 필드를 마크의 경로에 drag&drop 후 '연속, 차원'으로 설정합니다.
      - 도구설명은 끕니다. 
  5. Gauge Chart의 '눈금' 생성
    1. [Tick Length] float 매개변수 생성: 눈금의 길이를 결정합니다.
      • 허용 가능한 값(Allowable values): 범위(Range)
      • 최소값(Minimum): 0.01
      • 최대값(Maximum): 0.15
      • 단계 크기(Step size): 0.01
      • 현재 값(Current value)은 .05로 설정합니다. 
    2. '눈금'을 위한 3가지 계산된 필드를 만듭니다.
      • Tick Degrees
        CASE [Value]
        WHEN IN (0,6) THEN 0
        WHEN IN (1,7) THEN [Level 1]
        WHEN IN (2,8) THEN [Level 2]
        WHEN IN (3,9) THEN [Level 3]
        WHEN IN (4,10) THEN [Over Target]
        WHEN IN (5,11) THEN 1
        END * PI()/[Over Target]
      • Tick Radius
        IF [Value] IN (0,1,2,3,4,5)
        AND [Level] = 1 
        THEN 1 -[Size] - 0.05 - [Tick Length]
        ELSEIF [Value] IN (6,7,8,9,10,11)
        AND [Level] = 1
        THEN 1 - [Size] - 0.05
        END
      • Ticks
        MAKEPOINT(
            [Tick Radius]*SIN([Tick Degrees]),
            - [Tick Radius]*COS([Tick Degrees])
        )
    3. [Ticks] 필드를 Gauge 의 다이얼이 그려져 있는 캔버스에 drag&drop합니다. 
      - 마크 유형을 '라인'으로 변경 후 
      - [Tick Degrees] 필드를 마크의 세부사항에 drag&drop 후 '연속, 차원'으로 설정합니다. 
      - [Value] 필드를 마크의 경로에 drag&drop 후 '연속, 차원'으로 설정합니다. 
      - 마크의 크기를 가장 작은 값으로 조절합니다. 
  6. cf. 각 매개변수를 표시하여 조절하면서 작동 방법을 익힐 수 있습니다. 
  7. 목표 대비 해당 값 적용 
    1. 목표 값 설정: [Target]이라는 부동 매개변수를 생성합니다.
      • ex. Target
        • 데이터 유형(Data type): 실수(Float)
        • 현재 값(Current value): 1,234,567
        • 그 외 default 값 유지 
    2. 목표와 비교할 값: 계산된 필드로 작성합니다. 
      • Key Metric
        SUM([목표와 비교하고자 하는 필드명])
    3. 목표 대비 해당 값을 보여줄 Pointer 
      • Point Degrees 
        CASE [Point]
        WHEN 1 THEN 0 
        WHEN 2 THEN MIN({[Key Metric]}/[Target]/[Over Target], 1)
        END*PI()
      • Point Radius
        CASE [Point]
        WHEN 1 THEN 0 
        WHEN 2 THEN 1 - [Size]/2
        END
      • Gauge Point
        MAKEPOINT(
            [Point Radius]*SIN([Point Degrees]),
            -[Point Radius]*COS([Point Degrees])
        )
      • Point Size
        CASE [Point]
        WHEN 1 THEN 10
        WHEN 2 THEN 0.2
        END
    4. 해당 [Gauge Point] 필드를 캔버스에 drag&drop합니다. 
      - 각 마크들을 혼동하지 않기 위해 레이어 이름을 'point'로 바꿉니다. (다른 마크 레이어도 'Dial', 'Ticks'로 변경)
      - 마크 유형을 '라인'으로 변경합니다. 
      - 해당 마크의 경로에 [Point] 필드를 drag&drop 후 '연속, 차수'로 설정합니다. 
      - [Point Size] 필드를 마크의 크기에 drag&drop 후 원하는 크기로 조정합니다. 
      - 색상: 검정색으로 변경합니다. 
  8. 다이얼의 레이블(Label) 추가 
    레이블을 추가하기 위해선 레이블이 들어갈 각 점의 각도와 반지름을 계산해야 합니다. 
    1. [Label padding]이라는 float 매개변수를 만듭니다. 
      : 눈금 끝과 레이블 사이에 간격을 제공합니다.
      • 데이터 유형(Data type): 실수(Float)
      • 현재 값(Current value): 0.1
      • 그 외 default 값 유지 
    2. 2개의 계산된 필드 만듭니다. 
      • Label Degrees
        CASE [Point]
        WHEN 1 THEN [Level 1]
        WHEN 2 THEN [Level 2]
        WHEN 3 THEN [Level 3]
        WHEN 4 THEN 1
        WHEN 5 THEN [Over Target]
        WHEN 6 THEN 0
        END * PI()/[Over Target]
      • Label Radius
        CASE [Point]
        WHEN IN (1,2,3,4,5,6) THEN 1 - [Size] - 0.05 - [Tick Length] - [Label padding]
        END
    3. 두 개의 새롭게 추가된 필드를 가지고 [Labels] 필드를 생성합니다. 
      MAKEPOINT(
          [Label Radius]*SIN([Label Degrees]),
          -([Label Radius]-0.05)*COS([Label Degrees])
      )
    4. [Labels] 필드를 맵 레이어에 추가합니다. 
      - 레이어 이름: "Labels"로 변경
      - 마크 유형: 텍스트 
      - [Point] 필드를 세부정보(detail)로 drag&drop 후에 '연속, 차수'로 설정합니다. 
    5. 레이블에 사용할 [Labels Key Metric] 새 계산을 생성합니다. 
      CASE [Point]
      WHEN 1 THEN [Level 1]
      WHEN 2 THEN [Level 2]
      WHEN 3 THEN [Level 3]
      WHEN 4 THEN 1
      WHEN 5 THEN [Over Target]
      WHEN 6 THEN 0 
      END * [Target]
    6. [Labels Key Metric] 필드를 마크의 텍스트에 drag&drop 합니다. 
  9. 목표 및 해당 값의 레이블 추가 
    1. 제목의 위치: [KPI Name] 계산
      MAKEPOINT(1.1, 0)
    2. [KPI Name] 필드를 맵 레이어로 추가
      - 레이어 이름: 제목 
      - 마크 유형: 텍스트 
      -[KPI Name]이라는 매개변수 생성
      • 데이터 유형(Data type): 문자열
      • 현재 값(Current value): Sales
      • 그 외 default 값 유지 
      - [KPI Name] 매개변수를 마크의 텍스트에 추가 
      - 크기 설정 

    3.  주요 측정항목에 대한 레이블 위치: [KPI] 계산
      MAKEPOINT(-.2, 0)
    4. [KPI] 필드를 맵 레이어로 추가 
      - 레이어 이름: (유지)
      - 마크 유형: 텍스트 
      - 텍스트 내용: [Key Metric], [Target] 필드 추가 
  10.  마무리 정리 
    1. "Point" 맵 레이어를 drag하여 "Labels" 맵 레이어 위에 drop 합니다. 
      → 게이지 막대를 시각적으로 잘 나오도록 작업을 수행합니다. 
    2. "Dial" 마크의 색상을 조금 더 시각적으로 인지하기 쉽도록 변형을 줍니다. 
      : red-orange-yellow-green-blue
    3. 상단의 메뉴에서 "맵" - "배경 맵" - "없음" 처리 함. 
      - 이렇게 하면 백그라운드의 회색 빛이 사라지는 대신 추가 형식들이 생성됩니다. 
      - 경도(열) : -1.1, 1.1로 설정
      - 위도(행) : -0.4, 1.2로 설정 
      - 축 머릿글 숨기기 
      - 시트의 서식: 모든 눈금자, 선, 눈금 및 구분선을 "없음" 처리
    4. null 표시 숨기기 
    5. "Dial" 레이어의 색상 - 테두리 - 흰색으로 설정 

cf. 대시보드에 추가 시, 이상적인 비율은: 너비 11, 높이 8 (게이지가 원형으로 유지되는 비율)

 

 

최종 결과 형태

 

 

 

  • 달성률 1 이상의 값은 표현이 가능하나, 음수 값을 적용하는 게이지는 만들지 못했음
  • 추후 음수 값을 적용한 게이지도 생성 도전
  • 음수일 경우 0으로 도달하도록 도전할 예정 
  • 참고자료

 

 

 

'IT world > Tableau' 카테고리의 다른 글

Gauge Chart 첨부파일 1  (0) 2022.09.13