안녕하세요! 오늘은 유데미 스타터스 부트캠프 8주차 학습일지입니다! 🐸
이번주는 다양한 태블로 심화 그래프에 대해 배우며 태블로 자격증 취득 준비, 미니 해커톤 프로젝트 과정을 진행하였습니다.
그럼 8주차에는 어떤 내용을 학습했는지, 스타터스 부트캠프 8주차 학습일지 시작해보겠습니다 !💨
❤️🔥 LIKED
미니 해커톤 프로젝트
Work Flow
① 주제 선정
② 데이터 정제
③ 컨텐츠 레이아웃 설정
④ 대시보드 레이아웃 설정
⑤ 시트 제작
① 주제 선정
ⓐ 게임 회사에서 벤치마킹할만한 구글 스토어 내 게임 앱을 분석
ⓑ 인 앱 광고 효과가 높을 구글 스토어 내 앱 분석 → 결정 !
② 데이터 정제
ⓐ [Type] ‘0’, ‘NaN’ Row 제거 (각각 1개씩 존재. 무의미한 데이터로 제거)
ⓑ [Category] > [Genres] → 계층 처리
ⓒ [Translated Review] ‘NaN’ → 데이터 셋을 2개로 생성하여 구분 Inner join(리뷰가 있는 데이터만) & left join(모든 데이터)
ⓓ [Translated Review], [app] → distinct 처리
ⓔ 불필요 컬럼 제거 : Size, Price, Current Ver, App(Review~), Sentiment Subjectivity (처리 완료)
③ 컨텐츠 레이아웃 설정
대시보드 1 : 데이터 현황
대시보드 2 : 지표별 최우수 앱 정보와 앱 데이터 리스트
대시보드 3 : 개별 앱 상세 지표
④ 대시보드 레이아웃 설정
ⓐ 고정 아이콘 선정
ⓑ 대시보드 레이아웃 만들기
⑤ 시트 제작
ⓐ 개별 담당 시트 정하기
ⓑ 개별 담당 시트 제작
㉮ 현황 시트
㉯ 별점 분포 히스토그램 차트
각 별점에 몇개의 앱이 분포되어 있는지 알 수 있음
㉰ 평균 별점 표현 시트
차트에 부동으로 함께 표현될 평균 별점 수치를 표현
🌟 LEAREND
심화 그래프 만들기
Gauge Chart
게이지 차트는 속도계와 같은 모양을 가지며 목표에 대한 한 가지 성능 측정값을 보여준다.
① 표현하고 싶은 비율 지표 만들기 - [sales(%)]
SUM([Sales])/WINDOW_SUM(SUM([Sales]))
② 비율을 이용해 범위 자르기
IF [sales(%)]>0.5 THEN [sales(%)]-0.5 ELSE 0 END #slice 1
IF [sales(%)]>0.5 THEN 1-[sales(%)] ELSE 0 END #slice 2
1 #slice 3
IF [sales(%)]<0.5 THEN [sales(%)] ELSE 0.5 END #slice 4
IF [sales(%)]<0.5 THEN 0.5-[sales(%)] ELSE 0 END #slice 5
③ 이중 축을 이용한 도넛 차트 만들기
④ 날짜 필터 생성
데이터를 년/월/일 별 세세하게 구별하기 위함
ⓐ 날짜형 매개변수 만들기 - [date]
ⓑ 계산된 필드로 매개변수 연결하기 - [날짜 필터]
DATETRUNC('year',[Order Date]) = DATETRUNC('year',[date])
AND
DATETRUNC('month',[Order Date]) = DATETRUNC('month',[date])
⑤ Gauge Chart 그리기
ⓐ Category 필드 추가, 날짜 필터 설정
ⓑ 계산된 필드 slice 1~5를 각도에 추가
⑥ Gauge Chart 색상 설정
ⓐ 1, 4번 → 같은 색으로 칠해 비율 표현
ⓑ 2, 5번 → 회색으로 칠해 비어있는 값 표현
ⓒ 3번 → 흰색으로 칠해 보이지 않는 값 표현
⑦ 응용 설정
ⓐ % 범위 별로 색상을 지정할 수 있도록 범위 구분에 대한 계산된 필드 생성 - [sales_범위]
IF [sales(%)] < 0.2 THEN "20% 미만"
ELSEIF [sales(%)]>=0.2 AND [sales(%)]<0.4 THEN "20~40% 미만"
ELSEIF [sales(%)]>=0.4 THEN "40% 이상"
END
ⓑ [sales_범위]를 세부정보 - 색상으로 설정하여 slice 및 % 범위에 따라 색상을 지정
Jitter Bar Chart
① 열과 행에 대한 필드 만들기 - [row], [col]
random() #row
random() * [fix_region_sum_sales] #col
② Reion으로 고정된 Sales 값 표현
ⓐ 계산된 필드 만들기 - [fix_region_sum_sales]
{ FIXED [Region]:SUM([Sales])}
ⓑ 열 선반에 올려둔 뒤, [불연속형]으로 변환
ⓒ Product Name을 세부 사항으로 설정, Category 별 색상 지정
Waffle Chart
와플 차트는 작은 사각형으로 전체 영역을 나누고 각 변량이 차지하는 비율만큼 사각형을 각 변량에 포함시킴으로써 데이터를 시각화한다.
① 구간차원 생성 - [path]
IIF([Ship Mode] = 'First Class', 1, 100)
② 매개변수 만들기
③ 열과 행에 대한 필드 만들기
[index]%[@columns] #Columns
INT([index]/[@columns]) #Rows
④ 그래프로 나타낼 측정값에 대한 필드 만들기
WINDOW_SUM(SUM([Sales])) #TC_sales
WINDOW_SUM(SUM([Sales])) #TC_total sales
[TC_sales]/[TC_total sales] #TC_percentage
⑤ 색상 설정을 위한 필드 만들기
IF [index]/WINDOW_MAX([index])<[TC_percentage] THEN WINDOW_MAX(MAX([Region]))
ELSE'grey'
END
캘린더 시각화
달력(Calendar)은 흔히 스케쥴을 표시할 때도 있지만 일별 데이터를 비교하기 위한 목적으로 사용한다.
특히, 우리나라와 같이 계절성이 있기 때문에 1년 52주차의 변화가 눈에 띈다거나 계절성의 영향을 받지 않더라도
주차별로 데이터의 변화를 손쉽게 파악할 수 있으며, 요일별로 함께 교차분석으로 활용하기 적절한 시각화 기법이다.
다만, Tableau에서 달력을 구현하기 위해서는 모든 해당하는 날의 날짜 데이터가 반드시 있어야 한다.
① 평일 / 주말을 나누는 필드 만들기 - [weekend 함수]
캘린더 상에 평일과 주말을 각각 다른 색으로 표현하기 위해 필드를 두가지 경우로 나눠주었다.
색상은 해당 필드를 색상 마크에 드래그하여 설정할 수 있다.
IF DATEPART('weekday', [Order Date]) = 1
OR
DATEPART('weekday', [Order Date]) = 7
THEN "weekend"
ELSE "weekday"
END
② 캘린더 표현하기
ⓐ 캘린더의 열과 행에 해당하는 '요일', '주 번호' 설정 & 각 셀에 날짜가 들어가도록 '일' 텍스트 마크로 드래그
ⓑ 평일과 주말 색상 구분을 위해 [weekend 함수] 색상 마크로 드래그
③ 한 달만 VLOD에 표현하기
[Order Date]를 필터로 설정 후 '연도/월' 선택
Bullet Chart
불릿 그래프는 실적 데이터를 표현하기위한 그래프로 목표 달성 대비 실적 결과를 보여주기 위한 목적으로 사용한다.
① 타겟(목표) 필드 만들기 - [target 함수]
불렛 차트에서 표현될 목표 라인(ex. 목표 수익)을 만들기 위한 필드 → 목표액(60000)을 고정하여 설정
{ FIXED DATETRUNC('year', [Order Date]) :SUM(60000)}
② Bullet Chart 표현하기
ⓐ 차트에 표현되어야 하는 [Profit], [target 함수]를 열 선반에 추가
ⓑ 표현방식에서 '불릿 그래프' 선택
ⓒ '축 우클릭 > 참조선 필드 바꾸기' 선택
차트 열에는 측정값이, 차트 세부사항에는 목표액이 설정되어야 함
③ 디테일 완성
ⓐ 각 연도 별 행 표현
ⓑ 각 막대 그래프에 측정값 라벨 추가
ⓒ target line 색상 강조
Waterfall Chart
폭포 차트(Waterfall Chart)는 연속적으로 누적해가면서 증가하거나 감소하는 것을 한 눈에 표현하기 위한 목적으로 사용한다.
① 누계 & 간트 차트 표현
ⓐ 측정값 [Sales]를 '퀵 테이블 계산 > 누계'로 설정
ⓑ '마크 > 간트 차트' 설정
② 폭포 모양 표현을 위한 필드 만들기 - [waterfall]
-[Sales]
③ Bullet Chart 표현하기
ⓐ [waterfall] '마크 > 크기' 설정
ⓑ '분석 > 총계 > 행 총합계 표시' 설정
ⓒ 색상 설정
Bar Gauge Chart
막대 게이지 차트(Gauge Chart)는 일반적인 게이지 차트와 유사하며,
자동차 대시보드에 있는 게기판 형태로 시각화하여 현재의 상태가 어떤지 한눈에 파악하기 위한 목적으로 사용한다.
① 게이지 필드 만들기 - [득점]
ZN([Profit]/[Sales])
② 막대 게이지 표현
ⓐ 열 선반에 '1', [득점] 필드 올려두기 *[득점] 집계 '평균' 설정
ⓑ 이중 축 설정 후 축 동기화
ⓒ 축 범위 0~1로 설정
ⓓ 마크 > 막대 설정
③ 디테일 완성
ⓐ [Region] 별 행 표현
ⓑ 각 막대 그래프에 측정값 라벨 추가
Venn diagram Chart
벤 다이어그램(Venn Diagram)는 각 영역에 포함된 정보와 두 영역에 모두 포함되는 정보를 한 눈에 표현하기 위한 목적으로 사용한다.
① 위치 레이아웃 지정
ⓐ 원 위치 지정 - [circle locate]
if [Type] = '핫'
THEN -1
ELSE 1
END
ⓑ 텍스트 위치 지정 - [text locate]
if [Product] = '라떼' OR [Product] = '아이스 라떼'
THEN 0
ELSEIF [Type] = '핫'
THEN -1
ELSE 1
END
ⓒ 열 선반에 올린 뒤 차원 설정
ⓓ 이중 축 설정 후 축 동기화
② 벤 다이어그램 모양 표현
ⓐ 마크 > 원 설정
ⓑ 마크 > [Type] 색상 설정
③ 라벨 설정
ⓐ 교집합 라벨 표현을 위한 필드 만들기 - [text label]
IF [Product]= '라떼' OR [Product]='아이스 라떼'
THEN '
|
|
|'
ELSEIF [Type]='핫'
THEN '핫'
ELSE '아이스'
END
ⓑ 교집합 및 차집합 라벨 추가 [text label], [Sales]
인사 차트
레이아웃을 만들어 텍스트, 아이콘, 그래프 등 다양한 정보를 담을 수 있는 리스트 차트
깔때기 차트
깔때기형 차트는 데이터가 프로세스 전반에서 이동하는 방식을 시각화하는 데 사용한다.
① 프로세스에 대한 필드가 필요
② Count 값을 Sum으로 집계하여 행과 크기로 설정
바벨 차트
바벨 모양을 통해 두 측정값을 연결하여 시각화한다.
① 바벨의 원, 막대를 표현하기 위해 2개의 열이 필요
② 바벨 라인을 통해 두 측정값을 연결해야 하기 때문에 필터로 2개의 연도를 선택해 설정
워드클라우드
문서의 키워드, 개념 등을 직관적으로 파악할 수 있도록 핵심 단어를 시각적으로 돋보이게 하는 기법
레이아웃 만들기
① 마크 > 텍스트 '''' 입력
② 전체보기 설정
③ 우클릭 > 주석 추가 > 영역 선택
④ 영역 서식 설정
💦 LACKED
태블로 자격증 Test 오답
Q. 디폴트 값으로, 태블로가 데이터 원본에 연결될 때 하는 일은?
A. Creates a live connection to the data
Q. 계산된 필드, 컬럼명 변경 .. 이 경우 안전하게 저장하려면?
A. .tds file
Q. 태블로에서 조인할 수 있는 테이블 최대 개수
A. 32개
Q. LOD에 대한 설명
A. Data granularity (입도, 세분성)
Q. 모든 파일, 데이터 원본, 아이콘 등의 디폴트 경로
A. Documents -> Tableau
Q. Bins는 차원에서 만들어질 수 있다
A. Yessss
Q. 태블로에서 워크북, 뷰, 대시보드, 데이터 원본을 만들게 하고, 이걸 우리의 서버로 연결해주는 것은
A. Tableau Sever
Q. 디폴트 값으로, 뷰에 있는 측정값은 집계된다. 집계 종류는 어떻게 정해지나?
A. 뷰에 있는 내용에 따라! depends on the context of the view
Q. 태블로에서 추출할 때 'Incremental refresh'에 대한 설명으로 옳은 것
A. It only adds rows that are new since the previous refresh
Q. Stacked Bar Chart 를 사용하는 이유
A. 전체의 부분을 시각화하기 위해, 적은 막대 혹은 마크로 복잡한 정보를 시각화하기 위해
Q. 태블로가 자동으로 만드는 차원과 측정값의 개수
A. 1개의 차원, 4개의 측정값
Q. .tds file에 저장되는 것
A. Calculated fields, Metadata edits, Data Connection information
Q. logical layer / physical layer
A. Relationships은 noodle로 표현되고, logical layer에서 작동됨
그룹 과제 중 어려웠던 점
전체 리뷰 개수에 대한 필드 생성 과정
전체 리뷰 개수 = 총합계 - (nan + Null)
즉, 'nan', 'Null'에 해당하는 개수를 구해야 한다.
IF [Translated Review] = 'nan' # nan 개수 구하기
THEN 1
IIF(ISNULL([Translated Review])) # Null 개수 구하기
Null 개수를 구하는 식을 만드는 게 어려웠다. 아무리 해도 정확한 값이 나오지 않았다 😥
Null은 다른 값을 구하는 것과는 다른 식이 필요하다는 걸 알게되었다.
결론적으로, 아래와 같은 식을 통해 제외된 개수를 알 수 있다.
IF [Translated Review] = 'nan'
THEN 0
ELSEIF ISNULL([Translated Review])
THEN 0
ELSE 1
END
✍🏻 LONGED FOR
그럼 이상으로 8주차 학습일지를 마치겠습니다 !
9주차도 열심히 달려보겠습니다 !!!💨
* 유데미 큐레이션 바로가기 : https://bit.ly/3HRWeVL
* STARTERS 취업 부트캠프 공식 블로그 : https://blog.naver.com/udemy-wjtb
본 후기는 유데미-웅진씽크빅 취업 부트캠프 4기 데이터분석/시각화 학습 일지 리뷰로 작성되었습니다.
'STARTERS 4기 > [STARTERS] 학습 일지' 카테고리의 다른 글
[유데미 스타터스 취업 부트캠프 4기] 10주차 학습 일지(데이터분석/시각화(태블로)) (0) | 2023.04.14 |
---|---|
[유데미 스타터스 취업 부트캠프 4기] 9주차 학습 일지(데이터분석/시각화(태블로)) (0) | 2023.04.09 |
[유데미 스타터스 취업 부트캠프 4기] 7주차 학습 일지(데이터분석/시각화(태블로)) (0) | 2023.03.26 |
[유데미 스타터스 취업 부트캠프 4기] 6주차 학습 일지(데이터분석/시각화(태블로)) (0) | 2023.03.19 |
[유데미 스타터스 취업 부트캠프 4기] 5주차 학습 일지(데이터분석/시각화(태블로)) (0) | 2023.03.12 |