👶

plot.ly 뉴비에게 뉴비가 (이용 기초 가이드)

주의! 이건 파이썬 문법 기반 플로틀리 포스팅입니다.
👶
플로틀리 써보려고 하는데, 공식문서 보고 따라하기가 너무 힘들어요!
인터넷 레퍼런스를 보고 야심차게 플로틀리(plot.ly)를 써보려는 당신!
하지만 불친절하고 영어로만 이루어진 공식문서와 난해한 패키지 구성에 지쳤다면 ...
이번 기초 가이드 포스팅을 보면서 따라해봅시다. 제가 겪은 어려움을 기반으로 설명해드릴게요 💆‍♂️
목차 :
1. 예시 그래프와 코드를 비교하면서 plot.ly 구성 파악하기 & 감 잡기
그래프 구성 코드 보기 (파이썬 plot.ly 기반) - # 주석을 따라가며 코드에 익숙해져봅시다
2. 첫 발 떼기 : px와 go 개념 구분하기
Plotly는 그래프 만들기에 있어 두 가지 큰 방법이 있습니다.
fig = go.Figure() : go를 통해 그래프를 하나하나 설정하며 제작
→ go를 통한 그래프는 챕터 1의 코드를 참고해주시기 바랍니다.
세부적인 figure 용법 가이드문서 링크는 여기로
*하지만 먼저 그리고자 하는 그래프 예시를 하나 보고, 그것에 필요한 요소를 위 링크에서 찾길 권장합니다.
fig = px.scatter() : px를 통해 템플릿으로 그래프를 빠르게 제작
→ px는 express 문법의 줄임말로서, 아래 그래프와 구성 코드를 통해 파악해 봅시다.
공식 가이드문서 링크는 여기로
다음과 같은 템플릿을 지원합니다
그래프 구성 코드 보기 (파이썬 plot.ly 기반)
공식 문서의 활용 갤러리에 들어가도, px로 빠르게 그릴 것인지, go를 통해 그릴 것인지 갈래를 나누어 설명합니다.
Line Graph 예시
3. hovering (호버링) 개념 이해하고 예시 따라하기
Seaborn과 matplotlib도 있지만 굳이 plotly를 이용하는 이유는 바로 클릭과 반응하는 인터렉티브 그래프를 구축할 수 있다는 점일 것입니다.
그 중, 데이터의 세부 정보를 추가적으로 보여주는 팝업 정보창인 호버링(hover)은 plotly의 큰 강점 중 하나입니다.
챕터 1 그래프의 호버데이터
go와 px로 만든 그래프 모두 hover data 기능을 지원합니다.
다만 go로 만든 그래프의 설정이 hover 데이터 구성에 있어서도 자유도가 훨씬 높기 때문에, 세세한 정보 전달이 필요하다면 go로 그래프를 만드는 것을 권장합니다.
호버링 역시 Figure의 수많은 요소 중 하나이므로 공식문서를 통해 자세한 용법을 익힐 수 있습니다.
그러나 가장 중요한 hovertemplate의 공식 가이드의 상태가... ?! (링크)
가독성이 너무...떨어진다.
따라서 위에서 본 챕터 1의 호버데이터 구성 코드를 공유해드릴테니 이를 보고 응용하시면 좋습니다.
hovertemplate = [] for num in range(20): name = df_sub_data.iloc[num, 0] team = df_sub_data.iloc[num, 1] position = df_sub_data.iloc[num, 2] total_hit = df_sub_data.iloc[num, 3] homerun = df_sub_data.iloc[num, 4] rbi = df_sub_data.iloc[num, 5] hovertemplate.append(f"{name} 2019년 스탯<br>========<br>소속 : {team}<br>포지션 : {position}<br>안타 수 : {total_hit}<br>홈런 수 : {homerun}<br>타점 수 : {rbi}")
Python
🤔 왜 리스트 타입으로 넣었는가?
go를 통한 그래프에서는 x축, y축 데이터 모두 리스트 타입으로 계속 데이터를 교체해줘야 합니다.
hovertemplate에 들어갈 데이터도 마찬가지로 리스트 타입을 통해 계속 x,y에 들어간 데이터와 순차적으로 맞는 데이터가 설정되어야 합니다.
챕터 1 예제에서 야구선수가 계속 바뀌어 들어갔듯, havertemplate 에도 야구선수 마다 팝업 정보창에 들어갈 데이터를 바꿔 넣어주는 리스트 타입으로 넣었습니다.
리스트가 아닌 스트링 타입으로 넣으면 모든 데이터에 그 스트링 텍스트만 팝업되어 나옵니다.
💡 <br>은 왜 쓰는가? 그 외의 용법은?
HTML 표기법에 익숙하신 분은 알겠지만, <br> 태그는 줄바꿈입니다.
또한 포맷팅 기법 (f-string 혹은 % string 기법)을 통해 바꿔들어갈 데이터는 {} 안에 바꿔 넣어줍니다.
나머지는 응용하기 나름입니다!
4. Dash? Chart Studio? 어떤 걸 써야할지 파악하기
자주 묻는 질문 중에 "그래프는 만들었는데 어떻게 노션이나 html로 구워내죠?" 라는 게 가장 핫합니다.
그와 더불어 사람들이 묻는 것이 이것입니다. "Dash는 뭐예요?"
😅 Plotly 공식 사이트에 들어가면 포스팅 끝마다 "Dash는 어때?" 라고 묻습니다. 대무새
일단, 인터렉티브 그래프를 만들고자 하는 일반 개인 사용자는 Dash 라는 프로덕트를 쓸 필요가 없습니다.
대신, 만든 그래프 (fig에 담아둔 그 그래프) html로 구성된 웹 페이지로 구워내려면 Chart Studio 라는 프로덕트를 사용해야합니다.
Chart Studio는 플로틀리 측에서 만든 프로덕트이며, 간단한 회원가입이 필요합니다. 링크
회원가입을 통해 IDAPI Key를 발급받아야 하기 때문입니다.
회원가입한 ID와 API 키는 모두 그래프를 짤 때 코드로 기입해야 하니 잘 저장해둡니다.
개인 회원가입자는 그래프 제작 개수 제한이 없고, 기업 단위 이용시 유료 모델로 전환하는 구조입니다.
단, 만들어낸 그래프의 용량이 너무 크면 (약 500KB 초과) 유료 모델로 전환해야 익스포팅이 가능합니다.
이렇게... 제한이 뜨고 유료로 전환해야 한다는 안내를 해줍니다.
회원가입이 완료되면 다음과 같은 코드로 fig 그래프를 추출할 수 있습니다.
만든 그래프는 chart studio 마이 페이지 탭에서 저장되니 온라인으로 관리할 수 있습니다.
코드 보기
5. 다음 스텝에 대해서
plot.ly가 지원하는 기능은 매우 다양해서, 애니메이션이나 3D 그래프, 지도 그리기 등이 가능합니다.
이번 포스팅을 통해 플로틀리에 대해 낯섦이 조금 가셨다면,
공식 갤러리를 보면서 자신이 응용할 수 있는 분야에 적극 접목해보시길 권장합니다. 링크
🙋‍♂️ 김문과의 데이터
직접 공부한 데이터 분석 · 활용법을 기록합니다.
포스팅에 대한 Q&A 및 다양한 논의를 기다립니다. contact or email
Today