
1. Plotly란 무엇인가?
Plotly는 Python, R, JavaScript 등에서 사용 가능한 인터랙티브 시각화 라이브러리입니다. 특히 Python에서는 Plotly Express와 Plotly Graph Objects 두 가지 API를 통해 손쉽게 다양한 그래프를 만들 수 있습니다. 일반적인 matplotlib나 seaborn과 달리, Plotly는 HTML 기반의 동적인 시각화가 가능하여 웹 대시보드, 데이터 리포트, 프레젠테이션 자료로 활용도가 높습니다.
2. 설치 방법
pip install plotly
JupyterLab 또는 VSCode를 사용하는 경우에도 브라우저에서 바로 시각화가 가능합니다.
3. 주요 기능 비교
| 기능 | Plotly | Matplotlib | Seaborn |
|---|---|---|---|
| 인터랙티브 지원 | 지원 | 미지원 | 미지원 |
| 웹 내보내기 | 가능 | 불가 | 불가 |
| 차트 종류 다양성 | 매우 다양 | 보통 | 제한적 |
| 초보자 접근성 | 높음 (Plotly Express) | 보통 | 높음 |
| 대시보드 제작 | Dash 연동 가능 | 불가 | 불가 |
4. 기본 사용 예제 (Plotly Express)
import plotly.express as px
df = px.data.iris() # 내장 데이터셋
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()
위 코드는 붓꽃 데이터셋을 이용하여 종(species)에 따라 색상이 구분된 산점도를 생성합니다. 마우스 오버, 줌인/아웃, 레전드 클릭이 모두 가능합니다.
5. 고급 예제: 시계열 라인 차트
df = px.data.stocks()
fig = px.line(df, x='date', y=['GOOG', 'AAPL', 'AMZN'], title='Tech Stocks Over Time')
fig.show()
시계열 데이터를 라인 차트로 시각화하며, 시간에 따라 확대/축소 및 마우스 툴팁 기능이 자동으로 활성화됩니다.
6. 다양한 차트 유형
- 산점도(Scatter)
- 막대 그래프(Bar)
- 라인 차트(Line)
- 히트맵(Heatmap)
- 트리맵(Treemap)
- 3D 플롯(3D Surface, 3D Scatter)
- 파이 차트(Pie)
- 애니메이션 차트 (시간 경과에 따른 동적 시각화)
7. 웹 대시보드: Dash 연동
Plotly는 같은 회사에서 개발한 Dash 프레임워크와 통합하여, 코드만으로 웹 기반 대시보드를 만들 수 있습니다.
from dash import Dash, dcc, html
import plotly.express as px
app = Dash(__name__)
df = px.data.gapminder().query("year == 2007")
fig = px.scatter(df, x="gdpPercap", y="lifeExp", size="pop", color="continent")
app.layout = html.Div([
html.H1("세계 GDP vs 기대수명"),
dcc.Graph(figure=fig)
])
if __name__ == '__main__':
app.run_server(debug=True)
이 코드를 실행하면 Plotly 시각화가 포함된 웹 애플리케이션이 브라우저에서 동작합니다.
8. 실무 활용 사례
- 마케팅 분석: 방문자 트렌드 시각화, 매출 데이터 추세 분석
- 재무 리포트: 수익/비용 비교 및 KPI 그래프화
- 고객 행동 분석: 시간대별 클릭량, 장바구니 전환율 분석
- BI 대시보드: 실시간 매출 현황을 담은 대시보드 구축
9. 자주 묻는 질문
- Q. 그래프를 HTML로 저장할 수 있나요?
- A. 예.
fig.write_html("파일명.html")로 저장 가능합니다. - Q. 오프라인에서도 시각화가 가능한가요?
- A. 가능합니다. 인터넷 없이도 브라우저 기반의 시각화가 동작합니다.
- Q. Matplotlib보다 느리지 않나요?
- A. 렌더링 면에서는 느릴 수 있지만, 웹 기반 인터랙션이 필요하다면 가치가 높습니다.
10. 마무리
Python으로 아름답고 직관적인 시각화를 구현하고자 한다면 Plotly는 최고의 선택입니다. 단순한 그래프를 넘어서 동적 보고서, 실시간 분석, 웹 대시보드까지 확장 가능한 이 도구는 실무 효율성과 데이터 전달력을 모두 충족시켜줍니다. 이제 단순한 막대 그래프에서 벗어나, 진정한 ‘데이터의 이야기’를 전달해보세요. Plotly는 그 길을 함께할 강력한 도구입니다.
출처
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] Altair로 구현하는 선언적 데이터 시각화의 진수 (0) | 2025.07.23 |
|---|---|
| [PYTHON] Bokeh로 만드는 실시간 웹 기반 인터랙티브 시각화 (0) | 2025.07.23 |
| [PYTHON] xlsxwriter로 엑셀 자동화 보고서 완전 정복 (0) | 2025.07.22 |
| [PYTHON] xlwings로 엑셀을 직접 제어하는 실전 자동화 가이드 (0) | 2025.07.22 |
| [PYTHON] openpyxl로 엑셀 자동화 완전 정복 (0) | 2025.07.22 |