๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐ŸPython/Streamlit (10)

ruriruriya

[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ์ƒ‰๊น” ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•(color_picker())

color_picker() ํ•จ์ˆ˜๋Š” Streamlit์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ƒ‰์ƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋Ÿฌ ํ”ผ์ปค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ƒ‰์ƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์„ ํƒ๋œ ์ƒ‰์ƒ์„ ๋ณ€์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. "์ƒ‰์ƒ์„ ์„ ํƒํ•˜์„ธ์š”"๋Š” ์ƒ‰์ƒ ์„ ํƒ๊ธฐ ์œ„์— ํ‘œ์‹œ๋˜๋Š” ์„ค๋ช… ํ…์ŠคํŠธ๋‹ค. #ff6347์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜๋Š” ์ƒ‰์ƒ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ‰์ƒ์„ ์„ ํƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ๋Š” ๊ฒ€์ •์ƒ‰(#000000) ๊ฐ’์ด ๊ธฐ๋ณธ์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. import streamlit as st def main(): #์ƒ‰๊น” ์ž…๋ ฅ color = st.color_picker('์ƒ‰์„ ์„ ํƒํ•˜์„ธ์š”.') st.text(color) selected_color = st.color_picker("์ƒ‰์ƒ์„ ์„ ํƒํ•˜์„ธ์š”", "#ff6..

๐ŸPython/Streamlit 2023. 11. 26. 00:39
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ๋ฐ›๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•(text_input(type='password'), secrets)

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. Streamlit์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ž…๋ ฅ๋ฐ›์œผ๋ ค๋ฉด text_input์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ์„ ๋ฐ›๊ณ , st.secrets๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ˆจ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์ด๋ฅผ st.secrets๋ฅผ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ์•”ํ˜ธํ™”๋œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜์–ด ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ๋‹ค. import streamlit as st def main(): password =st.text_input('๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ', type='password') if password: st.secrets["user_password"] = password st.s..

๐ŸPython/Streamlit 2023. 11. 26. 00:17
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ๋‚ ์งœ/์‹œ๊ฐ„ ์ž…๋ ฅ๋ฐ›๊ธฐ(date_input, time_input)

์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit)์˜ date_input ๋ฐ time_input ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ๊ฐ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋‚ ์งœ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์„ ํƒํ•œ ๋‚ ์งœ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. "๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜์„ธ์š”"๋Š” ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜๋Š” ๋‹ฌ๋ ฅ ์œ„์— ํ‘œ์‹œ๋˜๋Š” ์„ค๋ช… ํ…์ŠคํŠธ datetime.today()๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์˜ค๋Š˜ ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์„ ํƒ๋œ ๋‚ ์งœ๊ฐ€ ์—†์„ ๋•Œ ์‚ฌ์šฉ 1. date_input * strftime() ๋ฉ”์†Œ๋“œ๋Š” ํŒŒ์ด์ฌ์˜ ๋ฉ”์†Œ๋“œ๋กœ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ์›ํ•˜๋Š” ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. import streamlit as st def main(): # ๋‚ ์งœ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฉ๋ฒ• my_date = st.date_i..

๐ŸPython/Streamlit 2023. 11. 25. 23:53
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ์ˆซ์ž ์ž…๋ ฅ๋ฐ›๊ธฐ(number_input)

์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit)์˜ number_input ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์ž๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž์˜ ๋ฒ”์œ„์™€ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. "์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”"๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ƒ์ž ์œ„์— ํ‘œ์‹œ๋˜๋Š” ์„ค๋ช… ํ…์ŠคํŠธ๋‹ค. min_value ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. max_value ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. value ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ž…๋ ฅ ์ƒ์ž์— ํ‘œ์‹œ๋˜๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. number_input ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ž…๋ ฅ๋œ ๊ฐ’์ด ์ˆซ์ž์ธ์ง€, ์„ค์ •๋œ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์‰ฝ๊ฒŒ ์ž…..

๐ŸPython/Streamlit 2023. 11. 25. 23:43
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ํ…์ŠคํŠธ ์ž…๋ ฅ๋ฐ›๊ธฐ(text_input, text_area)

์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit)์—์„œ text_input๊ณผ text_area๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด๋‹ค. text_input์€ ํ•œ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ๋กœ ์งง์€ ํ…์ŠคํŠธ์— ์ ํ•ฉํ•˜๋‹ค. text_area๋Š” ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ธด ์„ค๋ช…์ด๋‚˜ ์—ฌ๋Ÿฌ ์ค„์˜ ์ •๋ณด๋ฅผ ๋ฐ›์„ ๋•Œ ์ ํ•ฉํ•˜๋‹ค. text_input๊ณผ text_area๋Š” ๊ฐ๊ฐ์˜ ํ…์ŠคํŠธ ์ž…๋ ฅ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ํ…์ŠคํŠธ์˜ ์–‘๊ณผ ํ˜•ํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 1. text.input() text.input() ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒ์ž๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ž…๋ ฅ ์ƒ์ž ์œ„์— ํ‘œ์‹œ๋˜๋Š” ํ…์ŠคํŠธ์ด๋ฉฐ, ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ..

๐ŸPython/Streamlit 2023. 11. 25. 23:27
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ์ด๋ฏธ์ง€์™€ ๋™์˜์ƒ์„ ์›น ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•(image, video)

์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€์™€ ๋™์˜์ƒ์„ ์›น ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” st.image()๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋™์˜์ƒ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” st.video()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋จผ์ € ์˜ˆ์ œ์— ์“ธ ์ด๋ฏธ์ง€์™€ ์˜์ƒ์„ ํด๋”์— ๋‹ด์•„๋‘”๋‹ค.(data ํด๋”) image()์™€ video() ์ด๋ฏธ์ง€์™€ ์˜์ƒ์€ ํด๋” ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , ์›น ์ƒ์—์„œ ์ด๋ฏธ์ง€ url์„ ์ž‘์„ฑํ•ด์„œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. import streamlit as st import pandas as pd import numpy as np from PIL import Image def main() : st.title('App5 Testing..') my_image = Image.open('./data/image_03.jp..

๐ŸPython/Streamlit 2023. 11. 22. 15:16
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ๋ฒ„ํŠผ, ์ฒดํฌ๋ฐ•์Šค, ์…€๋ ‰ํŠธ๋ฐ•์Šค, ์Šฌ๋ผ์ด๋” ๋งŒ๋“ค๊ธฐ(button, checkbox, selectbox, slider)

์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit)์€ ํŒŒ์ด์ฌ์œผ๋กœ ๋ฒ„ํŠผ, ์ฒดํฌ๋ฐ•์Šค, ์…€๋ ‰ํŠธ๋ฐ•์Šค, ์Šฌ๋ผ์ด๋” ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ž„ํฌํŠธ ํ•œ๋‹ค.(streamlit, pandas, numpy ๋“ฑ) ๋ฒ„ํŠผ(Button) ๋ฒ„ํŠผ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•˜์—ฌ ์–ด๋–ค ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์œ„์ ฏ์ด๋‹ค. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. import streamlit as st import pandas as pd import numpy as np def main(): st.title('App4 - ์•„์ด๋ฆฌ์Šค ๊ฝƒ์˜ ์ข…๋ฅ˜') df = pd.read_csv('./data/iris.csv') # ๋ฒ„ํŠผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• if st.button('๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณด๊ธฐ'):..

๐ŸPython/Streamlit 2023. 11. 22. 13:48
[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์›น์— ๋‚˜ํƒ€๋‚ด๊ธฐ(dataframe)

Streamlit์—์„œ๋Š” ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด st.dataframe() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ํ…Œ์ด๋ธ”๋กœ ํ‘œ์‹œํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด streamlit๊ณผ pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž„ํฌํŠธํ•˜์—ฌ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์›น์— ๋‚˜ํƒ€๋‚ด๋ณด์ž. st.dataframe() ๋จผ์ € ๋ฉ”์ธ ํ•จ์ˆ˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ํŒ๋‹ค์Šค read_csv๋กœ csv ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  st.dataframe() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์›น ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  species ์ปฌ๋Ÿผ์˜ ์ข…๋ฅ˜๋ฅผ ํŒ๋‹ค์Šค์˜ nunique() ์‚ฌ์šฉํ•ด์„œ ์ข…๋ฅ˜์˜ ๊ฐฏ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด์–ด์„œ ์›น ํ™”๋ฉด์— ํ‘œ์‹œํ•ด๋ณธ๋‹ค. import streamlit as st import pandas as pd # ํŒ๋‹ค์Šค์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„..

๐ŸPython/Streamlit 2023. 11. 22. 09:31