Data visualization/데이터시각화(Streamlit)

[Week 03] Streamlit 예제 코드 구현해보기

뉴욕킴 2023. 7. 24. 22:30
import streamlit as st
import pandas as pd
import numpy as np
	
st.title('Uber pickups in NYC')
	
DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
              'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
	
@st.cache
def load_data(nrows):
    data = pd.read_csv(DATA_URL, nrows=nrows)
    lowercase = lambda x: str(x).lower()
    data.rename(lowercase, axis='columns', inplace=True)
    data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
    return data
	
data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache)")
	
if st.checkbox('Show raw data'):
    st.subheader('Raw data')
    st.write(data)
	
st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)
	
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
	
st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)

st.title("Title")
st.header("Header")
st.subheader("subheader")
st.write("Write Something")

  @st.cache
  def load_data():
       # data load
       return data

  if st.button("click button"):
      st.write("Data Loading..")
      # 데이터 로딩 함수는 여기에!
        
  checkbox_btn = st.checkbox('Checktbox Button')
	
  if checkbox_btn:
      st.write('Great!')
        
  checkbox_btn2 = st.checkbox('Checktbox Button2', value=True)
	
  if checkbox_btn2:
      st.write('Button2')
        
        
  selected_item = st.radio("Radio Part", ("A", "B", "C"))
	
  if selected_item == "A":
      st.write("A!!")
  elif selected_item == "B":
      st.write("B!")
  elif selected_item == "C":
      st.write("C!")
        
        
  option = st.selectbox('Please select in selectbox!',
                       ('kyle', 'seongyun', 'zzsza'))
	
  st.write('You selected:', option)

  multi_select = st.multiselect('Please select somethings in multi selectbox!',
                                ['A', 'B', 'C', 'D'])
	
  st.write('You selected:', multi_select)

  multi_select = st.multiselect('Please select somethings in multi selectbox!',
                                ['A', 'B', 'C', 'D'])
	
  st.write('You selected:', multi_select)

 st.text_input(value)
 st.text_input(label, value, type="password")
 st.number_input(label, value)
 st.text_area(label, value)
 st.date_input(label, value)
 st.time_input(label, value)   

  st.write("st.dataframe api")
  df = pd.DataFrame(np.random.randn(5, 2), columns=('col %d' % i for i in range(2)))
  st.dataframe(df.style.highlight_max(axis=0))
	
  st.write("st.table api")
  st.table(df)
    
 st.success("Success")
 st.error("Error")
 st.warning("Warning")
 st.info("Info")
    
  import time
	
  with st.spinner('Wait for it...'):
      time.sleep(5)
  st.success('Done!')


  from PIL import Image
  image = Image.open('img.jpg')
	
  st.image(image)


  video_file = open('video.mp4', 'rb')
  video_bytes = video_file.read()
	
  st.video(video_bytes)


  audio_file = open('audio.ogg', 'rb')
  audio_bytes = audio_file.read()
	
  st.audio(audio_bytes, format='audio/ogg')


add_selectbox = st.sidebar.selectbox("왼쪽 사이드바 Select Box", ("A", "B", "C"))

col1, col2, col3 = st.beta_columns(3)

with col1:
   st.header("A cat")
   st.image("https://static.streamlit.io/examples/cat.jpg", use_column_width=True)

with col2:
   st.header("Button")
   if st.button("Button!!"):
       st.write("Yes")

with col3:
	st.header("Chart Data")
	chart_data = pd.DataFrame(np.random.randn(50, 3), columns=["a", "b", "c"])
	st.bar_chart(chart_data)