見出し画像

🔰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問)】

  1. st.write(df) と st.table(df) の違いは?

  2. highlight_max(axis=0) はどんな動作?

  3. Streamlitのマジックコマンドはどのように書く?

  4. st.dataframeの長所と短所は?

  5. np.random.rand(20,3) は何個の値を生成する?

  6. line_chartの代わりに使えるチャートは?

  7. pip install streamlitは何をしている?


【解答】

  1. st.write は何でも表示、st.tableは静的表示

  2. 列ごとに最大値をハイライト

  3. """ の中にMarkdownやコードを書く

  4. 表を動的に表示+スクロール可能

  5. 60個の値 (20行 x 3列)

  6. st.bar_chart, st.area_chartなど

  7. Streamlit本体をpip管理下にインストール


Key Points to Memorize

  • st.dataframe(df.style.highlight_max(axis=0)) で最大値ハイライトつきの表を表示

  • Markdown や Pythonコードをマジックコマンドで書ける

  • st.line_chart はインタラクティブな細いグラフを描画

いいなと思ったら応援しよう!