使用するのはst.map()
指定された緯度・経度が示す点を中心に、sizeで指定されるサイズの点(というか円)を表示することができます。
簡単に地図を使ったアプリを作成できるのが良いですね。
latitude
緯度を示す列の名称。
指定しない場合、lat/latitude/LAT/LATITUDEという名称の列が緯度として扱われる。
上記にあてはまる列が複数ある場合は、該当する列の内の一番先頭の列が緯度情報として扱われる。
longitude
経度を示す列の名称。
指定しない場合、 lon/longitude/LON/LONGITUDEという名称の列が経度として扱われる。
上記にあてはまる列が複数ある場合は、該当する列の内の一番先頭の列が経度情報として扱われる。
size
地図上に表示する円の大きさを指定する項目。
-
数字
全てのデータに対し、一律の大きさで円を表示する。
仮にsize=NNと指定した場合、(緯度, 経度)が示す点を中心とした半径NNmの円相当。 -
文字列
表示する円の大きさを示す列の名称として扱われる。
このため、sizeに文字列を指定した場合、データ毎に円の大きさを自由に設定することができることになる。
各円の大きさについてはsizeを数値で指定した場合と同じで、半径NNmの円相当。
color
各円の色を指定する項目。
-
16進数(#000000形式または#00000000形式)
RGB指定(#000000形式)あるいはRGB+透明度指定(#00000000形式)。
RGBはそれぞれ00に近いほど黒く、FFに近いほどRed/Green/Blueになる。
透明度は00に近いほど透明度が強い。透明度に00を指定すると無色透明。
#000000形式で指定した場合の透明度はFF扱いの模様。 -
タプル(リストでも可)
要素数は3か4。各要素はint(0~255)かfloat(0.0~1.0)。
要素数3の場合は、先頭から順にRGBに対する値を指定されたという扱い。
要素数4の場合は、要素数3の場合+透明度という扱い。
各要素に対する値の考え方は16進数の場合と同じ。 -
文字列
各円の色を示す列の名称として扱われる。
このため、sizeに文字列を指定した場合、データ毎に円の色を自由に設定することができることになる。
zoom
数値を指定。
縦横900pxで確認してみたところ、以下がちょうど収まるような感じで表示されました。
0:世界全体
5:択捉島~屋久島
7:四国+九州
8:岩手県
9:岡山県
10:淡路島
サンプル
以下のようなデータを使って、簡単な例を表示してみます。
都道府県 | 緯度 | 経度 | 人口 | color |
---|---|---|---|---|
茨城県 | 36.341822 | 140.446795 | 2806 | #FF0000F0 |
栃木県 | 36.565735 | 139.883561 | 1885 | #00FF00F0 |
群馬県 | 36.390694 | 139.060423 | 1890 | #0000FFF0 |
埼玉県 | 35.857002 | 139.648847 | 7332 | #000000F0 |
千葉県 | 35.605060 | 140.123306 | 6251 | #000000FF |
東京都 | 35.689507 | 139.691728 | 14178 | #FFFF00F0 |
神奈川県 | 35.447728 | 139.642545 | 9225 | #00FF00F0 |
例1:size、colorを一律で設定
st.map( df, latitude='緯度', longitude='経度', zoom=8, size=3000,
width=800, height=800, use_container_width=False,
color=[0,0.8,0,96] )
各都道府県の県庁/都庁所在地に一律の色、大きさの円が表示されています。
例2:size、colorを個別に設定
st.map( df, latitude='緯度', longitude='経度', zoom=8, size='人口',
width=800, height=800, use_container_width=False,
color='color' )
各都道府県の県庁/都庁所在地に"color"列で個別指定した色、"人口"列で指定した数値に応じたサイズの円が表示されています。