Streamlit 地图只是 st.pydeck_chart 的包装。这有助于轻松制作地图图表,但也有一些限制,例如设置高度和宽度。
如果您想控制所呈现地图的高度和宽度,最好的选择是使用具有高度和宽度参数的st.pydeck_chart。
这是使用st.pydeck_chart 创建地图的代码:
import streamlit as st
import pandas as pd
import numpy as np
import pydeck as pdk
height = 500
width = 500
df = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
columns=['lat', 'lon'])
st.pydeck_chart(pdk.Deck(
map_style='mapbox://styles/mapbox/light-v9',
initial_view_state=pdk.ViewState(
latitude=37.76,
longitude=-122.4,
zoom=11,
height=height,
width=width
),
layers=[
pdk.Layer(
'ScatterplotLayer',
data=df,
get_position='[lon, lat]',
get_color='[200, 30, 0, 160]',
get_radius=100,
auto_highlight=True
),
],
))
height=500 和 width=500 的输出:
height=100 和 width=100 的输出:
注意 - st.map 在地图顶部创建散点图,但使用 st.pydeck_chart 为我们在地图创建和设计方面提供了更多的灵活性和选择。