🔰Python + Streamlitの魔法を指光する!
Streamlitの魔法を指光する!
AI先生 : おやおや、今日もプログラミングに行き詰まっているようだね?
Python初心者 : Streamlitでもやってみるかなと。Webアプリとか魔法の技術でしょ?
AI先生 : そうそう!StreamlitはPythonのコードをすぐにWebアプリに変えてしまう怪しい魔法なのさ。
【1. 準備は1コマンドでOK!】
さすがのStreamlit。最初はこれだけ。
pip install streamlitそして、この魔法の告白。
streamlit helloというわけで、ブラウザが動き出し、Streamlitのデモアプリが開きます。
【2. 開発環境を作ろう】
これもシンプル!
mkdir streamlit_study
cd streamlit_study
code .そして、main.pyというファイルを作成して以下を書きます。
【3. Streamlit入門 コードの基本】
import streamlit as st
import numpy as np
import pandas as pd
st.title('Streamlit 入門')
st.write('DataFrame')
# 表の定義
df = pd.DataFrame({
'code': [1, 2, 3, 4],
'name': ['山田', 'Joth', 'relly', '高木']
})
# 定義した表を表示
st.write(df)
# highlight_maxで最大値をハイライト
st.dataframe(df.style.highlight_max(axis=0), width=400, height=200)とても簡単。VS Codeで
streamlit run main.pyと打てば、ローカルホスト:8501 で表示されるわけです。
【4. st.table:静的な表示】
以前にはst.write(df)を使いましたが、平積表現をしたいなら、これ。
st.table(df.style.highlight_max(axis=0))これは静的な表なので、表を見るだけで「操作はさせないよ」というアプローチが気持ちです。
【5. マジックコマンド?それは、世界を切り開く告知文】
"""
# 章
## 節
### 項
'''Python
import streamlit as st
import numpy as np
import pandas as pd
'''
"""これを書いてファイルを実行すると、Streamlitは「ん?Markdownのなにか?」と読み取り、文章の構造をわかりやすくしてくれます。
しかも、'''Python のなかは、「このコードをちゃんと描いてるよ」という示礼。
【6. 大量データを作成!】
df = pd.DataFrame(
np.random.rand(20, 3),
columns=['a', 'b', 'c']
)
st.write(df)np.random.randは、「なんだかわからないけど実験っぽいデータが欲しい」という時に最適。
【7. さあ、グラフを描こう!】
st.line_chart(df)たったこれだけで、魔法のような細いラインチャートがあらわれます。
しかも、表をマウスオーバーすれば動的に見せ方が変わるインタラクティブな力。

【8. APIリファレンスは最高の教科書】
もっと知りたくなったらこれ!
https://docs.streamlit.io/develop/api-reference
【9. アクティブリコール (7問)】
st.write(df) と st.table(df) の違いは?
highlight_max(axis=0) はどんな動作?
Streamlitのマジックコマンドはどのように書く?
st.dataframeの長所と短所は?
np.random.rand(20,3) は何個の値を生成する?
line_chartの代わりに使えるチャートは?
pip install streamlitは何をしている?
【解答】
st.write は何でも表示、st.tableは静的表示
列ごとに最大値をハイライト
""" の中にMarkdownやコードを書く
表を動的に表示+スクロール可能
60個の値 (20行 x 3列)
st.bar_chart, st.area_chartなど
Streamlit本体をpip管理下にインストール
Key Points to Memorize
st.dataframe(df.style.highlight_max(axis=0)) で最大値ハイライトつきの表を表示
Markdown や Pythonコードをマジックコマンドで書ける
st.line_chart はインタラクティブな細いグラフを描画
