Streamlit을 활용한 기본 시각화 도구
Streamlit을 활용한 기본 시각화 도구
Streamlit은 파이썬으로 대화형 웹 애플리케이션을 쉽게 만들 수 있는 프레임워크로, 특히 데이터 시각화에 강력한 기능을 제공합니다. Streamlit은 간단한 코드만으로 다양한 차트를 그릴 수 있도록 matplotlib
, plotly
, altair
, vega-lite
등 다양한 시각화 라이브러리와도 호환되며, 자체적으로 제공하는 기본적인 차트 함수도 매우 유용합니다.
이번 글에서는 Streamlit에서 제공하는 기본 시각화 도구를 활용하여 데이터를 시각화하는 방법을 소개하고, 몇 가지 간단한 예시를 통해 차트를 그려보겠습니다.
1. 사전 준비
먼저 Streamlit을 설치해야 합니다. 터미널에 다음 명령어를 입력해 Streamlit을 설치하세요.
pip install streamlit pandas numpy
Streamlit의 시각화 도구는 데이터프레임을 활용하는 경우가 많으므로 pandas
와 numpy
라이브러리도 함께 설치합니다.
2. Streamlit 기본 시각화 도구 소개
Streamlit은 기본적으로 다음과 같은 차트 시각화 기능을 제공합니다:
st.line_chart()
: 선형 차트st.area_chart()
: 면적 차트st.bar_chart()
: 막대 차트st.map()
: 지도 시각화
각 차트는 매우 간단하게 사용할 수 있으며, Pandas 데이터프레임이나 Numpy 배열을 인자로 전달하면 바로 차트를 그릴 수 있습니다.
3. 기본 시각화 예시
1) Line Chart (선형 차트)
선형 차트는 시간의 흐름에 따른 데이터를 시각화하는 데 주로 사용됩니다. Streamlit의 st.line_chart()
를 사용해 간단한 예시를 만들어보겠습니다.
import streamlit as st
import pandas as pd
import numpy as np
'Streamlit 기본 시각화 도구 - Line Chart')
st.title(
# 샘플 데이터 생성
= pd.DataFrame(
data 20, 3), # 20개의 행과 3개의 열을 가진 무작위 데이터 생성
np.random.randn(=['Column 1', 'Column 2', 'Column 3']
columns
)
# Line Chart 시각화
st.line_chart(data)
설명:
np.random.randn(20, 3)
은 20개의 행과 3개의 열을 가진 무작위 데이터를 생성합니다.st.line_chart()
에 데이터를 전달하면 자동으로 선형 차트가 그려집니다.
2) Area Chart (면적 차트)
면적 차트는 선형 차트와 비슷하지만, 각 선 아래의 면적을 채우는 방식으로 시각화됩니다. Streamlit에서는 st.area_chart()
를 사용해 면적 차트를 그릴 수 있습니다.
'Streamlit 기본 시각화 도구 - Area Chart')
st.title(
# Area Chart 시각화
st.area_chart(data)
설명:
st.area_chart()
함수에 같은 데이터를 전달하면 선형 차트 대신 면적 차트로 시각화됩니다.
3) Bar Chart (막대 차트)
막대 차트는 카테고리별 데이터를 비교할 때 유용하게 사용됩니다. Streamlit의 st.bar_chart()
를 사용해 막대 차트를 그려보겠습니다.
'Streamlit 기본 시각화 도구 - Bar Chart')
st.title(
# Bar Chart 시각화
st.bar_chart(data)
설명:
st.bar_chart()
는 카테고리별로 데이터를 막대로 표시합니다.- 위의 예시에서는 20개의 행이 각 막대에 대응되고, 3개의 열은 서로 다른 색으로 시각화됩니다.
4) 지도 시각화 (Map Visualization)
Streamlit은 위치 데이터를 시각화하기 위한 지도 시각화 기능도 기본으로 제공됩니다. st.map()
을 사용하여 위도와 경도 데이터를 기반으로 지도에 점을 찍을 수 있습니다.
'Streamlit 기본 시각화 도구 - Map')
st.title(
# 위도와 경도 데이터를 가진 샘플 데이터 생성
= pd.DataFrame({
map_data 'lat': np.random.randn(100) / 50 + 37.57, # 서울 위도 근처에 무작위 좌표 생성
'lon': np.random.randn(100) / 50 + 126.9800 # 서울 경도 근처에 무작위 좌표 생성
})
# 지도 시각화
map(map_data) st.
설명:
- 위와 같은 방식으로 Streamlit에서
st.map()
을 사용하면 위도(lat
)와 경도(lon
) 데이터를 기반으로 지도 상에 데이터를 시각화할 수 있습니다. - 샘플 데이터는 서울 주변의 무작위 좌표를 생성하여 시각화하고 있습니다.
4. 데이터 시각화 개선하기
Streamlit의 기본 시각화 도구는 매우 간단하게 사용할 수 있지만, 좀 더 복잡한 시각화를 위해서는 다른 라이브러리와 결합할 수 있습니다. 예를 들어 matplotlib
, plotly
, altair
등의 라이브러리와 함께 사용하면 더 세밀하고 정교한 시각화를 할 수 있습니다.
Plotly를 사용한 인터랙티브 차트
Plotly는 대화형 차트를 제공하는 강력한 라이브러리입니다. Streamlit에서 Plotly를 사용해 보겠습니다.
import plotly.express as px
'Plotly를 사용한 대화형 차트')
st.title(
# Plotly 예제 데이터 사용
= px.data.iris()
df
# Plotly Express로 대화형 차트 그리기
= px.scatter(df, x='sepal_width', y='sepal_length', color='species', size='petal_length')
fig
# Streamlit에 Plotly 차트 표시
st.plotly_chart(fig)
5. Streamlit 앱 실행하기
모든 코드를 작성한 후, 터미널에서 다음 명령어를 실행하여 Streamlit 애플리케이션을 실행할 수 있습니다.
streamlit run your_script.py
브라우저가 자동으로 열리고, 작성한 데이터 시각화가 웹 앱으로 나타나게 됩니다.
마무리
Streamlit은 매우 간단하게 데이터 시각화를 할 수 있는 도구입니다. 기본적인 선형 차트, 면적 차트, 막대 차트는 물론 지도 시각화까지 다양한 시각화 기능을 제공하고 있으며, 다른 시각화 라이브러리와의 호환성도 좋습니다.
<h3>카테고리 다른 글</h3>
Date | Title | Author |
---|---|---|
Jan 1, 3000 | 전체 카테고리 | |
Sep 21, 2024 | Streamlit 멀티 select 사용하기 | |
Sep 21, 2024 | Streamlit selectbox를 사용하기 | |
Sep 19, 2024 | Streamlit fragments 사용하기 | |
Sep 19, 2024 | Streamlit form 사용하기 | |
Sep 19, 2024 | Streamlit 데이터프레임 수정하기 | |
Sep 19, 2024 | Streamlit fragments 사용하기 | |
Sep 18, 2024 | Streamlit docker로 배포하기 | |
Sep 18, 2024 | Streamlit 실시간 업데이트 사용하기 | |
Sep 18, 2024 | Streamlit에서 다이얼로그 사용하기 | |
Sep 18, 2024 | Streamlit의 유지보수와 디버깅 팁 | |
Sep 17, 2024 | Streamlit cache_resource 사용하기 | |
Sep 16, 2024 | Streamlit cache 사용하기 | |
Sep 15, 2024 | Streamlit 데이터프레임 선택하기 | |
Sep 14, 2024 | Streamlit 다중 page 구성하기 | |
Sep 13, 2024 | Streamlit Session_state 사용하기 | |
Sep 12, 2024 | Streamlit에 Plotly 차트 적용하기 | |
Sep 11, 2024 | Streamlit에서 파일 업로드하기 | |
Sep 11, 2024 | Streamlit에 SQLite 데이터베이스 적용 | |
Sep 10, 2024 | Streamlit UI 컴포넌트 소개 | |
Sep 9, 2024 | Streamlit 사용 사례 | |
Sep 9, 2024 | Streamlit 설치 및 환경설정 | |
Sep 9, 2024 | Streamlit 애플리케이션 구조 이해 | |
Sep 9, 2024 | Streamlit layout 설정하는 방법 | |
Sep 8, 2024 | Streamlit이란 무엇인가요? | |
Sep 6, 2024 | Streamlit Cloud로 앱 배포하기 |