API reference – official

import streamlit as st
# import pandas as pd
# import numpy as np
# from PIL import Image
import time

Write and magic

st.write("文字列", df 等)

# markdown
"""
# 章
## 節
### 項
"""

# code
```python
import streamlit as st
import numpy as np
import pandas as pd
```

Text elements

 :color[text]  ex) red, orange, green, blue, violet, gray, rainbow
 :icon:  ex) tulip, cherry_blossom, rose, hibiscus, sunflower, blossom

st.title("body")
st.markdown("body" | '''body''')

Data elements

df = pd.DataFrame({"1列目":[1,2,3,4], "2列目":[10,20,30,40]})
st.write(df)
st.table(df.style.highlight_min(axis=0))
st.dataframe(df.style.highlight_max(axis=0), width=300, height=300)

Chart elements

# graph
df = pd.DataFrame(np.random.rand(20,3), columns=["a","b","c"])
st.line_chart(df)
st.area_chart(df)
st.bar_chart(df)

# map
df = pd.DataFrame(np.random.rand(100,2)/[50,50]+[35.69, 139.70], columns=["lat","lon"])
st.map(df)

Input widgets

# テキスト入力
text = st.text_input("あなたの趣味を教えてください")
"あなたの趣味:", text

# テキストエリア入力
txt = st.text_area("Text to analyze")
st.write(f"You wrote {len(txt)} characters.")

# スライダー
condition = st.slider("あなたの今の調子は?", 0, 100, 50)
"コンディション:", condition

# セレクトボックス
option = st.selectbox("あなたが好きな数字を教えてください。", list(range(1,10)))
"あなたが好きな数字は、", option, "です。"

# チェックボックス
if st.checkbox("Show Image"):
    img = Image.open("./xxx.png")
    st.image(img, caption="xxx", use_column_width=True)

Media elements

img = Image.open("./xxx.png")
st.image(img, caption="xxx", use_column_width=True)

st.audio(data, format="audio/wav", start_time=0, *, sample_rate=None)

st.video(data, format="video/mp4", start_time=0)

Layouts and containers

# サイドバー
st.sidebar.write("Interactive Widgets")
text = st.sidebar.text_input("あなたの趣味を教えてください")
condition = st.sidebar.slider("あなたの今の調子は?", 0, 100, 50)
"あなたの趣味:", text
"コンディション:", condition

Chat elements

under construction..

Status elements

"Start!!"

latest_iteration = st.empty()
bar = st.progress(0)

for i in range(100):
    latest_iteration.text(f"Iteration {i+1}")
    bar.progress(i+1)
    time.sleep(0.02)

"Done!!"