상세 컨텐츠

본문 제목

[Tableau 시각화 스터디] WOW2022 Week 22 : Can you maintain rank?

본문

작성자 : 17기 황우현

 

#WOW2022 Week 22: Can you maintain rank? – Workout Wednesday

This week’s challenge was inspired by one of the charts Ann Jackson used in her Advanced Speed Tips session with Lorna Brown. If you had a chance to watch live or virtually, you know it was an awesome session with some great tips and techniques (so if yo

workout-wednesday.com


Dataset

Hitting stats for all position players inducted into MLB Hall of Fame as of May 2022, via baseball-reference.com

Requirements

  • Dashboard Size: 1500 x 1100px
  • 4 sheets
  • Create a bar chart showing Wins Above Replacement ([WAR]) by player, ranked and sorted in descending order, with exception of a selected/highlighted player
    • Highlighted: #2d6b67; Not highlighted: #b1e2e2 Highlighted player should appear at the top of the chart, but maintain their rank (#32 for Ken Griffey Jr in the image above)
  • Create 3 bar charts showing the 5 players above and below the highlighted player in the following categories:
    • Batting Average ([BA])
    • On-Base Plus Slugging ([OPS])
    • Home Runs ([HR])
  • Any bar or player selected in any of the 4 charts should make that player the highlighted player
  • Match tooltips, labels, and formatting

1. 가장 좌측의 그래프 만들기

더보기

1-1. 데이터 불러오기

Tableau 시작 → 데이터 불러오기

1-2. 이름별 WAR 불러오기

1-2-1. Name → 행 으로 올려두기

1-2-2. WAR → 마크 / 텍스트 에 올려두기

1-2-3. WAR 내림차순으로 정렬하기

1-3. 원하는 선수 한 명만 고정시키기

1-3-1. 이름(Name) 변수의 집합 만들기 : Selected player Set

1-3-2. 우리가 상단에 고정되기를 원하는 선수인 Ken Griffey Jr. 체크

1-3-3. 해당 집합을 행의 Name 좌측에 끌어다두기

보다시피 Ken Griffey Jr.이 상단에 고정됨

1-4. WAR에 대한 Index (순위) 만들기

1-4-1. 우클릭 → 계산된 필드 만들기

이름 : index_WAR (index라는 명칭으로 한번에 보기 위하여 그냥 모든 인덱스 함수를 index로 시작하도록 했습니다)

INDEX()

1-4-2. index_WAR을 행의 Name 좌측에 끌어다놓고, 연속형 → 불연속형으로 바꾸기

⇒ index_WAR이라는 순위가 생김을 볼 수 있음  근데 Ken Griffey Jr.은 WAR이 32위여야함

(맨 위 최종 결과물 참고)

1-4-3. 행에 있는 index_WAR 클릭, 다음을 사용하여 계산 → 테이블 계산 편집

특정 차원 클릭, 정렬 순서 → 사용자 지정 정렬 → 사용자 지정, WAR, 합계, 내림차순

1-5. 클릭으로 선수 고정 바꾸기

보통 대시보드를 만드는 과정에서 동작을 추가하지만,

여기서는 데이터 전체에 동작을 먼저 걸어두어 나중에 대시보드 만드는 과정에서 이를 생략할 수 있도록 설정

1-5-1. 맨 위 워크시트 → 동작 / 동작 추가 → 집합 값 변경

1-5-2. 원본 시트 → 시트가 아니라 데이터 전체의 Worksheet로 지정

대상 집합 → Worksheet → Selected player set (위에서 정의했던 집합)

선택을 해제할 경우의 결과 → 집합 값 유지에 체크

참고 : 이때 동작 실행 결과 하위 항목으로 “집합에 값 추가”를 선택하면, 선수가 바뀌는 것이 아니라 한명씩 추가된다는 것을 알 수 있습니다! 다른 동작을 원할 때 유용하겠죠?

1-5-3. 표에서 다른 선수의 이름을 클릭했을 때, 위의 고정되는 선수가 바뀌는지 확인하기!

1-6. 서식 바꾸기

표 자체의 표기 서식을 수정합니다.

1-6-1. 행에서 index_WAR을 Name 좌측으로 옮기기, index_WAR 클릭 → 서식

1-6-2. 머리글 → 기본값 / 숫자 → 숫자 (사용자 지정) → 소수 자릿수 0으로, 접두사에 # 기호

1-6-3. 표의 컬럼에 우클릭 → 행에 대한 필드 레이블 숨기기

1-6-4. 행의 IN/OUT 클릭 → 머리글 표시 체크 해제

1-6-5. 이런 식으로 표가 정리되어있으면 끝!

1-7. Barplot 만들기 + 서식 입히기

Barplot을 만들고, 서식을 입힐 것입니다.

1-7-1. WAR을 열로 갖다놓기 + Selected player set을 마크의 색상으로 갖다놓기

 

1-7-2. 색깔 변경하기

마크 / 색상 클릭 → 색상 편집 → IN, OUT 더블클릭하면 색상 편집 가능 → HTML에 해당 값들 넣기 → IN : #2d6b67 / OUT : #b1e2e2

아래의 테두리 → 색상 추가 → IN과 동일한 색으로

1-7-3. 레이블 편집하기 :마크 / 레이블 클릭 → 마크 레이블 표시 체크 → 글꼴 Tableau Medium, 마크 색상 일치 클릭 → 맞춤 : 왼쪽

 

1-7-4. 열, 행, 그래프 서식 편집하기

#32, Ken Griffey Jr.에 각각 우클릭 후 좌측 서식에서 아래와 같이 적용시키기

첫 행을 살짝 아래로 잡아당겨 행 간격 넓히기, 순위와 이름 사이의 간격은 살짝 줄이기

테두리 클릭 → 아래와 같이 형식 맞추기 (맨 위 항목만 구분선) + 라인 클릭 → 격자선 없음

 

1-7-5. 시트 이름 바꾸기 : 아래 링크에서 제목 복붙하면 끝!

WINS ABOVE REPLACEMENT (WAR) FOR MLB HALL OF FAMERS

CLICK ON A PLAYER TO SEE WHERE THEY STACK UP IN EACH CATEGORY

 

1-7-6. 툴팁 (도구 설명) 설정하기 : 마크 / 도구 설명 클릭 → 다 지우고 삽입

변경된 툴팁 확인

7-7. X축 없애 : X축 우클릭 → 머리글 표시 체크 해제

최종 화면

2. 우측 그래프 만들기

더보기

2-1. 기존의 시트 복제하기

시트 → 우클릭 → 복제

2-2. 변수, 행, 열 세팅하기

2-2-1. 행에서 IN/OUT 제거

2-2-2. 열에 WAR을 BA로 대체, Name의 정렬을 BA 기준으로 변경

2-2-3. 좌측에 만들어둔 index_WAR을 복제, index_BA로 이름 변경 후 행에 갖다놓기, 불연속 변수로 변경하기 (위와 동일), Name의 좌측으로 끌어다놓기, 행의 index_WAR 제거

2-2-4. 행의 index_BA 클릭, 테이블 계산 편집

2-2-5. BA의 형식 변환

숫자 형식을 .000;-.000 로 바꾸기

결과 화면 : 우리의 Ken Griffey Jr.씨는 144등에 위치함을 알 수 있음

2-3. 선택한 선수 위로 5명, 아래로 5명만 보이도록 설정하기

2-3-1. 좌측 우클릭 → 계산된 필드 만들기 → selected_index

WINDOW_MAX(IF MAX([Selected player set]) THEN [index_BA] END)

저장 후 이를 행에다가 두고, 불연속형 변수로 변경해주고 Name 좌측에 옮기기

다시 selected_index를 클릭하여 테이블 계산 편집, 아래처럼 특정 차원에 모든 것을 체크!

2-3-3. 5명만 보이게 해야합니다!

계산된 필드를 하나 더 만들기 → filter_5

ABS([index_BA]-[selected_index])<=5

이는 선택된 인덱스 기준 위 아래 5 인덱스를 보여주는 필터가 될 겁니다.

이를 저장 후 필터에 끌어다놓고, 뜨는 팝업창에서 참 (왜냐면 위 아래 5명 안에 들어야하는게 조건인데 이에 부합해야하므로)을 누르면 :

2-4. 제목 맞춰주기 + 기타 서식

매개변수 만들기 → 이름 : player_name

이렇게 되면 이름을 바로 제목에 설정할 수는 있지만, 우리는 클릭함에 따라 제목이 변경되기를 원합니다!

상단 메뉴 워크시트 → 동작 → 동작 추가 → 매개 변수 변경

아래와 같이 전부 설정 (워크 시트 전체에 대하여 설정, 매개변수는 위에서 만든 player_name, 원본 필드는 Name)

제목 더블 클릭 후 아래 복붙 :

BATTING AVERAGE (AVG)

FIVE PEERS ABOVE & FIVE PEERS BELOW

그 뒤에 삽입 : 매개 변수.player_name

적용 후 제목 변화 확인하기!

열 머리글 삭제, 폰트 등은 위와 동일!

3. 남은 2개의 도표들은 위 과정을 OPS, HR로만 바꾸고 변수만 세팅하여 반복!

더보기

최종 형태

BA :

OPS :

HR :

4. 대시보드화 하기

→ 형식에 맞춰서 넣고, 비율만 조정하면 끝!


최종 결과물 :

최종 결과물

 

관련글 더보기

댓글 영역