📈 Streamlit チャート ― Pythonの数行で描くグラフと地図

対象バージョン v1.58 | 最終更新 2026-06-19 | 更新確認の目安:毎月

最新の実バージョンはプレイグラウンドst.__version__ を表示)で常に確認できます。

このページでわかること

  • Streamlit の組み込みチャートが、DataFrame を渡すだけで1行で描けること
  • 各チャートがどのバージョンから使えるか(Tierバッジで明記)
  • グラフライブラリ(Recharts/ECharts 等)を React で使う場合との使い分け
  • 実際に触れるプレイグラウンドと、ui-memo の対応ページへの導線

ウィジェット一覧

導入バージョンの新しい順。各チャートに導入バージョンの目安(Tier)を併記しています。

st.scatter_chart の散布図

st.scatter_chart

Tier B導入 v1.27〜

散布図。x / y に列名を指定。点のサイズや色も列で指定でき、相関や分布の確認に。v1.27 で追加

python
st.scatter_chart(df, x="A", y="B")

Reactとの比較:散布図は Recharts/ECharts なら軸・凡例・ツールチップを細かく作り込めるが、Streamlit は列を指定するだけで即描画できる。

散布図の実装比較を見る →
st.line_chart の折れ線グラフ

st.line_chart

Tier C導入 初期〜

折れ線グラフ。DataFrame を渡すだけで、複数列はそのまま複数系列になる。時系列やトレンドの表示に。

python
st.line_chart(df)

Reactとの比較:React では Recharts 等でコンポーネントを組む。凡例・軸・色の自由度は高いが、Streamlit は1行で複数系列まで出る。

折れ線グラフの実装比較を見る →
st.area_chart の面グラフ

st.area_chart

Tier C導入 初期〜

面グラフ。複数系列は積み上げ表示になる。量の推移や構成比の変化を見せるのに向く。

python
st.area_chart(df)

Reactとの比較:積み上げや塗りの細かな制御はライブラリ側が自由。Streamlit は手早く面で見せたいときに最短。

エリアチャートの実装比較を見る →
st.bar_chart の棒グラフ

st.bar_chart

Tier C導入 初期〜

棒グラフ。複数系列は積み上げ、horizontal=True で横棒にもできる。カテゴリ比較の定番。

python
st.bar_chart(df)

Reactとの比較:グルーピングや並び順、ラベルの作り込みはライブラリが自由。Streamlit はカテゴリ比較を即出すのに強い。

棒グラフの実装比較を見る →
st.map の地図プロット

st.map

Tier C導入 初期〜

緯度経度(lat / lon 列)の DataFrame を地図上にプロット。位置データをひと目で確認できる簡易マップ。より複雑な地図は st.pydeck_chart(deck.gl)で。

python
st.map(df)  # df に lat / lon 列

Reactとの比較:地図は React なら Mapbox/Leaflet 等でレイヤーやインタラクションを作り込む領域。Streamlit の st.map は「点を地図に出す」までを最短で。

地図(人口マップ)の実装比較を見る →

Reactでやるなら(使い分けまとめ)

Streamlit の組み込みチャートは、DataFrame を渡すだけで1行で描ける手軽さが身上。データ確認・社内ダッシュボード・PoC では、これ以上速い手段は少ない。

一方、公開プロダクトで凡例・軸・ツールチップ・配色・アニメーション・インタラクションまで作り込むなら、React のグラフライブラリ(Recharts / ECharts / Plotly 等)の自由度が要る。Streamlit でも st.plotly_chart / st.altair_chart でフル機能のライブラリを埋め込めるので、「手軽な組み込み」と「作り込みの埋め込み」を段階的に使い分けられる。

目安は、手早く可視化するなら組み込みチャート、見せ方を作り込むならライブラリ(公開Webが求めるSEO・デザイン制御・大量アクセスに Streamlit は構造的に弱く、逆に開発の速さで強いため)。Streamlit と React/Next.js の違いは Streamlit UI ガイド(総括) で詳しく解説。

この分野の深掘りは ui-memo のデータの可視化カテゴリ(Recharts・ECharts・Plotly 等の横断比較)へ。

※トレードオフ(参考):組み込みチャートは手軽な反面、見た目・軸・凡例の細かな制御は限定的。ライブラリは自由度が高い反面、同じグラフを出すまでの実装量は多い。

AIプロンプトテンプレ

Streamlit でチャートを作るときの、AIへの指示テンプレ。

複数系列の折れ線

text
Streamlit で pandas DataFrame の複数列を1枚の折れ線グラフにして。
st.line_chart を使って。

selectbox で系列切替

text
Streamlit で selectbox で系列を選ぶと、その系列だけ st.bar_chart で表示する実装を書いて。

地図プロット

text
Streamlit で緯度経度(lat / lon 列)の DataFrame を地図にプロットして。
st.map を使って。

▶ 実際に触ってみる ― チャート(プレイグラウンド)

本物の Streamlit がブラウザで動く。常に最新の実行バージョンを表示。

よくある質問

Streamlit の組み込みチャートと Plotly / Altair の違いは?

st.line_chart 等は1行で描ける手軽さ重視です。凡例・軸・配色などを細かく制御したい場合は、st.plotly_chart / st.altair_chart でフル機能のライブラリを埋め込めます。

st.scatter_chart はいつから使えますか?

v1.27 で追加されました。それ以前のバージョンでは st.altair_chart などで散布図を描きます。

チャートはリアルタイムに更新できますか?

値が変わるとスクリプトが再実行され、チャートも自動で更新されます。st.fragment を使えば一部だけを部分更新することもできます。

st.map に独自のマーカーやレイヤーを足せますか?

st.map は点を出す簡易表示です。レイヤーや色・3D表現まで制御するなら st.pydeck_chart(deck.gl)を使います。