카테고리 없음

스트림릿 차트 그래프 그리기

glenlee 2024. 2. 5. 02:02

수업자료

https://www.youtube.com/watch?v=2424N7ITZvo&ab_channel=%ED%85%8C%EB%94%94%EB%85%B8%ED%8A%B8TeddyNote

수업자료


 

#필요한 라이브러리
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

#한글폰트설정
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False
# plt.rcParams['axes.unicode_minus'] = False는 Matplotlib에서 사용되는 설정 중 하나입니다. 이 설정은 Matplotlib 플롯에서 축 레이블 및 텍스트에 마이너스 기호를 표시하는 데 사용됩니다.
# 기본적으로 Matplotlib은 유니코드 마이너스 기호를 사용하여 축 레이블과 텍스트에 음수를 나타냅니다. 그러나 일부 사용자는 시스템 또는 폰트 설정에 따라 이러한 기호가 잘 표시되지 않을 수 있습니다. 따라서 이 설정을 False로 변경하면 Matplotlib은 일반 ASCII 마이너스 기호를 사용하여 음수를 나타냅니다.
# 따라서 이 코드는 Matplotlib에서 플롯을 생성할 때 축 레이블 및 텍스트에 유니코드 마이너스 기호 대신 ASCII 마이너스 기호를 사용하도록 설정하는 것입니다.            
             
#DataFrame 생성
data = pd.DataFrame( {
    '이름'   :['영식', '철수', '영희'],
    '나이'   :[22, 31, 25],
    '몸무게' :[75.5, 80.2, 55.1]
})

st.dataframe(data, use_container_width=True)

fig, ax = plt.subplots()
ax.bar(data['이름'], data['나이'])
st.pyplot(fig)

barplot = sns.barplot(x='이름', y='나이', data=data, ax=ax, palette='Set2')
fig = barplot.get_figure()
st.pyplot(fig)


labels = ['G1', 'G2', 'G3', 'G4', 'G5',]
men_means = [20, 35, 30, 35, 27]
women_means =  [25, 32, 34, 20, 25]
men_std = [2, 3, 4, 1, 2]
women_std = [3, 5, 2, 3, 3]
width = 0.35

fig, ax = plt.subplots()

ax.bar(labels, men_means, width, yerr=men_std, label='Men')
ax.bar(labels, women_means, width, yerr=women_std, bottom=men_means, label='women')

ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.legend()

st.pyplot(fig)
yerr = y축의 오차
  • men_std: 남성 그룹의 각 카테고리에 대한 표준 편차(또는 오차)를 나타내는 리스트입니다. 각 카테고리에 대한 표준 편차는 해당 카테고리의 막대 그래프 주위에 오차 막대를 그리는 데 사용됩니다.
  • women_std: 여성 그룹의 각 카테고리에 대한 표준 편차(또는 오차)를 나타내는 리스트입니다. 각 카테고리에 대한 표준 편차는 해당 카테고리의 막대 그래프 주위에 오차 막대를 그리는 데 사용됩니다.
  • width: 막대의 너비를 나타내는 값입니다. 이 값은 막대 그래프에서 각 막대의 너비를 조절하는 데 사용됩니다.
  • ax.legend() 함수는 현재 그래프의 범례를 추가합니다. 이 함수를 호출하면 그래프에서 지정된 레이블에 해당하는 범례가 표시됩니다. 만약 각 그래프 요소에 레이블을 지정했다면, 그 레이블이 범례에 나타납니다.
  • 예를 들어, 주어진 데이터에서는 "Men"과 "Women"의 두 가지 카테고리에 대한 막대 그래프를 그렸으므로, ax.legend() 함수를 호출하면 "Men"과 "Women"에 대한 범례가 표시됩니다.