こんにちは、JS2IIUです。
地図を表示し、その上に何かの情報、例えばある地域の小学校の分布、交通事故の多い交差点の分布など簡単にを表示できるのがst.mapです。基本的な使い方を見ていきます。今回もよろしくお願いします。
1. はじめに
この記事では、Streamlitを使って、緯度・経度のデータを地図上に簡単に表示する方法を紹介します。
特別な地図ライブラリを使わなくても、st.mapだけで直感的にマッピングができるので、初心者にもおすすめです。
「地図上にお店の位置を表示したい」「観光地マップを作りたい」と思ったことがある方は、ぜひ参考にしてみてください!
2. st.mapとは?
st.mapは、Streamlitに用意されている地図表示用の関数です。
緯度(latitude)と経度(longitude)の情報を持ったデータを与えると、インタラクティブな地図上にポイントをプロットしてくれます。
特別な設定は必要なく、PandasのDataFrameをそのまま渡すだけでOKです!
3. 最小限のサンプルコード
まずは、最もシンプルなコードで地図を表示してみましょう。
たった数行で地図表示ができてしまいます!
import streamlit as st
import pandas as pd
# 緯度・経度データを作成
data = pd.DataFrame({
'lat': [35.6895],
'lon': [139.6917]
})
# 地図上にデータをプロット
st.map(data)
このコードのポイント
lat(緯度)とlon(経度)の2列を持つDataFrameを作成します。- そのDataFrameをそのまま
st.mapに渡すだけ!
これをStreamlitアプリとして実行すると、東京(新宿付近)が地図上にプロットされます。
4. データを複数追加してみよう
今度は、複数の地点を地図に表示してみましょう。
次のコードでは、東京・大阪・札幌の3都市をプロットします。
import streamlit as st
import pandas as pd
# 複数地点のデータ
data = pd.DataFrame({
'lat': [35.6895, 34.6937, 43.0667],
'lon': [139.6917, 135.5023, 141.3500]
})
# 地図上にデータをプロット
st.map(data)
これを実行すると、日本全国をまたいだ複数の点が地図上に表示されます。
拡大・縮小やドラッグで、自由に地図を動かして確認することができます。
5. 自分のデータを地図に表示する
「自分で持っているCSVデータを地図に表示したい!」という場合も、Streamlitならとても簡単です。
ここでは、CSVファイルをアップロードして表示するサンプルを紹介します。
import streamlit as st
import pandas as pd
# ファイルアップロード
uploaded_file = st.file_uploader("CSVファイルをアップロードしてください", type="csv")
if uploaded_file is not None:
# CSVを読み込み
df = pd.read_csv(uploaded_file)
# 地図にプロット
st.map(df)注意点
- CSVファイルには、必ず
latとlonというカラムが必要です。 - 緯度・経度のデータは数値型(float)である必要があります。
例:正しいCSVの中身
| lat | lon |
|---|---|
| 35.6895 | 139.6917 |
| 34.6937 | 135.5023 |
| 43.0667 | 141.3500 |
lat,lon
35.6895,139.6917
34.6937,135.5023
43.0667,141.35006. 注意点・よくあるエラー
実際に使ってみると、次のようなポイントでエラーが出ることがあります。
事前にチェックしておきましょう!
- カラム名が違うと動かない
→latitudeやlongitudeではなく、latとlonで統一しましょう。 - データ型が文字列だと表示されない
→ 数値(float型)で保存されているか確認しましょう。 - 緯度・経度が不正な値だと表示されない
→ 緯度は -90〜90、経度は -180〜180 の範囲である必要があります。
7. まとめ
st.mapを使えば、たった数行でインタラクティブな地図プロットが実現できます!
- シンプルなデータから始めて、複数地点も簡単に表示可能
- CSVファイルを読み込めば、自分だけのマップアプリも作れる
- さらにカスタマイズしたい場合は、
st.pydeck_chartなど高度な機能にもチャレンジできる
まずはこの記事のサンプルを動かして、楽しく地図表示を体験してみてください!
8. 参考リンク
最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。
最後まで読んでいただきありがとうございます。


コメント