Skip to content

Streamlit과 Seaborn 사용하기: 간단한 가이드

Updated on

Python 데이터 시각화 분야에서 가장 인기 있는 두 라이브러리는 StreamlitSeaborn입니다. 이 강력한 라이브러리들은 데이터를 시각화하는 방법을 혁신하여 더욱 접근 가능하고 통찰력 있는 시각화를 가능하게 만들었습니다. 이 포괄적인 가이드에서는 Streamlit과 Seaborn의 통합에 대해 자세히 알아보고, 두 라이브러리가 함께 작동하여 훌륭한 시각화를 생성하는 방법을 소개합니다.

데이터 과학자이든, 데이터 시각화의 세계로 처음 발을 딛는 초보자이든 상관 없이 이 가이드는 가치 있는 통찰력을 제공합니다. 우리는 기본적인 내용부터 시작하여 Streamlit과 Seaborn이 무엇인지를 정의하고, 통합과 실제 예시와 같은 더욱 복잡한 영역으로 이동할 것입니다.

Streamlit 소개

데이터 시각화 앱을 구축하는 동안 코드에 물들어 버리는 느낌을 받은 적이 있나요? 그럴 때 Streamlit을 사용해보세요. 이 오픈 소스 Python 라이브러리는 개발자에게 신선한 바람을 주어 기계 학습과 데이터 과학을 위한 인터랙티브 웹 애플리케이션을 쉽게 작성할 수 있습니다.

Streamlit의 매력은 그 간단함에 있습니다. 몇 줄의 코드로 완전히 기능적인 웹 애플리케이션을 구축할 수 있다고 상상해보세요. 너무 좋아서 사실 같지 않나요? 그러나 Streamlit을 사용하면 이것이 현실이 됩니다.

Streamlit이 가져올 수 있는 몇 가지 장점을 한 번 살펴보겠습니다:

  • 간편함: Streamlit의 사용자 친화적 인터페이스를 통해 데이터보다 코딩에 더 집중할 수 있습니다.
  • 맞춤 설정 가능성: 앱을 독특하게 만들고 싶나요? Streamlit을 사용하여 특별한 요구 사항에 맞게 앱을 조정할 수 있습니다.
  • 통합성: Streamlit은 Seaborn, Matplotlib, Altair를 포함한 다른 파이썬 라이브러리와 잘 작동합니다. 이는 데이터 과학자의 도구 상자에서 스위스 아미 나이프로 작용합니다.

그리고 시본은 무엇인가요?

만약 Streamlit이 무대라면, Seaborn은 그 연주자입니다. 이 Matplotlib을 기반으로 한 Python 데이터 시각화 라이브러리는 원시 데이터를 매력적이고 유익한 통계 그래픽으로 변환하는 예술가와 같습니다.

Seaborn은 다변수 복잡한 데이터 세트를 시각화할 때 빛을 발합니다. 데이터에서 발견되지 않을 수 있는 패턴과 관계를 드러내는 확대경 같은 역할을 합니다.

Seaborn의 주요 기능 중 일부는 다음과 같습니다:

  • 복잡한 플롯 유형: pair plots와 correlation plots를 들어보았나요? 이것들은 Seaborn의 특기로, 데이터에 대한 중요한 통찰력을 제공합니다.
  • Pandas와의 통합: Seaborn은 Peanut butter와 Jelly처럼 함께 사용하면 좋은 Pandas와 통합되어 탐색적 데이터 분석에 우수한 도구가 됩니다.

데이터 시각화에서 Streamlit과 Seaborn의 동적인 콤비네이션

개별적으로 사용할 때, Streamlit과 Seaborn은 데이터 시각화 세계에서 슈퍼 히어로입니다. 그러나 두 라이브러리가 합쳐지면 선종할 수 없는 힘을 발휘합니다. Streamlit과 Seaborn의 통합을 통해 웹 애플리케이션을 통해 공유 및 접근할 수 있는 대화형 데이터 시각화를 만들 수 있습니다.

이 강력한 조합은 무한한 가능성을 엽니다. 예를 들어, Seaborn을 사용하여 복잡한 pairplot을 만들고, 그림을 웹 애플리케이션에 표시하려는 경우가 있습니다. 이렇게 하면 Python이나 Seaborn이 그들의 기계에 설치되어 있지 않은 사람들에게도 발견 결과를 공유할 수 있습니다.

하지만, Streamlit과 Seaborn은 동적이더라도 문제가 발생할 수 있습니다. 악명높은 'ImportError'나 'savefig' 오류와 같은 문제가 발생할 수 있습니다. 그러나 걱정하지 마세요. 이 문제와 그 해결책은 다음 섹션에서 다룰 것입니다.

그럼에도 불구하고, Streamlit과 Seaborn의 통합은 항상 직관적인 것은 아닙니다. 악명높은 'ImportError'나 'savefig' 오류와 같은 문제가 발생할 수 있습니다. 그러나 걱정하지 마세요. 다음 섹션에서 이러한 문제와 그 해결책을 다룰 것입니다.

Streamlit과 Seaborn 사용 예시

기본적인 내용을 알아보았으니, 실제 예시를 살펴보겠습니다. 이 섹션에서는 Streamlit-Seaborn pairplot과 상관관계 플롯을 만드는 과정을 안내합니다. 또한 Streamlit과 Seaborn 통합시 종종 발생하는 'savefig' 오류에 대해서도 다룰 것입니다.

Streamlit과 Seaborn 통합

Streamlit과 Seaborn을 통합하는 과정은 몇 가지 단계가 필요합니다. 먼저 필요한 라이브러리를 가져와야 합니다. 다음으로 Seaborn 플롯을 생성하고 Streamlit을 사용하여 표시합니다. 다음은 간단한 예시입니다:

import streamlit as st
import seaborn as sns
import pandas as pd
 
# 데이터 로드
df = pd.read_csv('your_data.csv')
 
# Seaborn pairplot 생성
plot = sns.pairplot(df)
 
# 플롯을 Streamlit에 표시
st.pyplot(plot.fig)

이 예시에서는 먼저 필요한 라이브러리(Streamlit, Seaborn, Pandas)를 가져옵니다. 그런 다음 Pandas를 사용하여 데이터를 로드합니다. 그다음 Seaborn을 사용하여 pairplot을 생성합니다. 마지막으로 st.pyplot() 함수를 사용하여 플롯을 Streamlit에 표시합니다.

Streamlit에서 Seaborn 차트 표시

Streamlit에서 Seaborn 차트를 표시하는 것은 간단합니다. 일반적인 방법으로 Seaborn 플롯을 생성한 다음 st.pyplot() 함수를 사용하여 표시하면 됩니다. 다음은 예시입니다:

import streamlit as st
import seaborn as sns
import pandas as pd
 
# 데이터 로드
df = pd.read_csv('your_data.csv')
 
# Seaborn correlation plot 생성
plot = sns.heatmap(df.corr(), annot=True)
 
# 플롯을 Streamlit에 표시
st.pyplot(plot.get_figure())

이 예시에서는 Seaborn의 heatmap() 함수를 사용하여 상관관계 플롯을 생성합니다. 그런 다음 st.pyplot() 함수를 사용하여 플롯을 Streamlit에 표시합니다. Seaborn 플롯에서 Matplotlib의 figure 객체를 얻기 위해 get_figure() 메서드를 사용하는 것을 주목하세요.

PyGWalker를 사용하여 Streamlit 데이터 시각화 앱 만들기

PyGWalker (opens in a new tab)는 No Code로 만든 놀라운 도구 중 하나입니다. 이 Open Source Python Library를 사용하여 쉽게 Streamlit 데이터 시각화 앱을 만들 수 있습니다.

PyGWalker + Streamlit 온라인 데모 (opens in a new tab)

PyGWalker (opens in a new tab)는 Tableau와 유사한 UI를 손쉽게 Streamlit 앱에 통합할 수 있도록 도와주는 Python 라이브러리입니다.

이 강력한 데이터 시각화 Python 라이브러리로 Streamlit 앱을 강화하는 자세한 단계를 보여주는 Coding is Fun의 Sven (opens in a new tab)에 의해 제작된 놀라운 비디오를 확인해보세요!


PyGWalker 커뮤니티에 기여해준 Sven과 그의 훌륭한 기여 (opens in a new tab)에 특별히 감사드립니다!

또한 다음 자료들도 확인할 수 있습니다:

PyGWalker를 사용하여 Streamlit에서 데이터 시각화 (opens in a new tab)

고급 예제: 머신 러닝을 위한 Streamlit 애플리케이션 만들기

Streamlit을 사용하여 머신 러닝 애플리케이션을 만들어 보겠습니다. 간단한 예제인 긍정/부정 감정 분석 앱을 사용하겠습니다. 이 앱은 사용자 입력을 받고, 사전 훈련된 모델을 사용하여 입력의 감정을 예측하고 결과를 표시합니다.

단계 1: 필요한 라이브러리 가져오기

먼저 필요한 라이브러리를 가져와야 합니다. 앱 자체를 위해 Streamlit이 필요하며, 감정 분석을 위한 머신 러닝 라이브러리도 필요합니다. 이 예제에서는 TextBlob을 사용합니다.

import streamlit as st
from textblob import TextBlob

단계 2: 감정 분석을 위한 함수 생성하기

다음으로 텍스트 문자열을 입력으로 받고 해당 텍스트의 감정을 반환하는 함수를 만들겠습니다. TextBlob의 sentiment.polarity 메서드는 -1부터 1까지의 부동 소수점 값을 반환합니다. 여기서 -1은 부정적인 감정, 1은 긍정적인 감정, 0은 중립적인 감정을 나타냅니다.

def analyze_sentiment(text):
    return TextBlob(text).sentiment.polarity

단계 3: Streamlit 앱 만들기

이제 Streamlit 앱을 만들겠습니다. 제목과 텍스트 입력 필드를 추가하여 사용자가 텍스트를 입력할 수 있도록 하고, 버튼을 추가하여 클릭할 때 입력된 텍스트의 감정을 분석하고 결과를 표시하겠습니다.

st.title('감정 분석 앱')
 
user_input = st.text_input("텍스트를 입력하세요.")
 
if st.button('분석하기'):
    sentiment = analyze_sentiment(user_input)
    if sentiment < 0:
        st.write('이 텍스트의 감정은 부정적입니다.')
    elif sentiment > 0:
        st.write('이 텍스트의 감정은 긍정적입니다.')
    else:
        st.write('이 텍스트의 감정은 중립적입니다.')

단계 4: 앱 실행하기

마지막으로, 터미널에서 streamlit run app.py라고 입력하여 앱을 실행할 수 있습니다. 여기서 app.py는 Python 파일의 이름입니다.

이제 감정 분석 앱이 완성되었습니다. 사용자는 텍스트를 입력하고 앱이 텍스트의 감정을 분석하고 표시합니다. 이 예제는 단순한 예제일 뿐이지만, Streamlit을 사용하여 더 복잡한 머신 러닝 애플리케이션을 만들 수 있습니다. 가능성은 무한합니다!

결론

Streamlit과 Seaborn의 통합은 데이터 시각화의 세계에서 혁신적인 변화를 가져왔습니다. Streamlit의 간결함과 상호작용성을 Seaborn의 강력함과 유연성과 결합하여 데이터 과학자와 개발자에게 무한한 가능성을 열어주고 있습니다.

복잡한 pairplot이나 간단한 상관 플롯을 만들기 위해 Streamlit과 Seaborn을 사용할 수 있습니다. 이 안내서에서 제공하는 실용적인 예제와 자습서를 통해 Streamlit과 Seaborn의 통합을 숙달할 수 있습니다.

지금 바로 도전해보세요. Streamlit과 Seaborn의 세계로 뛰어들어 데이터 시각화의 힘을 발휘하세요!

자주 묻는 질문

1. Streamlit에서 Seaborn을 사용할 수 있을까요?

절대로 가능합니다! Streamlit은 Seaborn과 완벽하게 통합되어 웹 애플리케이션을 통해 공유하고 액세스할 수 있는 대화형 데이터 시각화를 생성할 수 있습니다.

2. Streamlit에서 Seaborn 플롯을 어떻게 표시하나요?

st.pyplot() 함수를 사용하여 Streamlit에서 Seaborn 플롯을 표시할 수 있습니다. 흔히 사용하는 Matplotlib 피규어 객체를 st.pyplot()에 전달하기만 하면 됩니다.

3. Seaborn이 Matplotlib에 비해 나은 점은 무엇인가요?

Seaborn과 Matplotlib은 서로 다른 목적을 가지고 있으며 종종 함께 사용됩니다. Seaborn은 매력적인 통계 그래픽을 그리기 위한 고수준 인터페이스를 제공하며, Matplotlib은 그래프의 세부 사항에 대해 더 많은 제어를 제공합니다. 사용 목적에 따라 두 라이브러리 중 하나가 더 적합할 수 있습니다.

4. Streamlit은 무엇에 좋은가요?

Streamlit은 머신 러닝과 데이터 과학을 위한 대화형 웹 애플리케이션을 개발할 수 있도록 도와주는 오픈 소스 Python 라이브러리입니다. 머신 러닝 도구를 구축하고 공유하는 프로세스를 단순화하기 위해 설계되었으며, 데이터 시각화를 위한 훌륭한 선택입니다.