PyDeck,地理可视化的Python神器!

多多简单说 2024-11-02 17:10:28

地图可视化是数据分析中的一大难题,尤其是要展示大量地理位置数据的时候。PyDeck这个基于deck.gl的Python库就是专门解决这个痛点的,它能帮我们轻松搞定各种炫酷的地理数据可视化。

1.

安装配置

python

复制

pipinstallpydeck

装好后还得准备一个Mapbox的token,这样才能用上底图。去Mapbox官网注册一下就能拿到,免费版够咱们用了。

2.

基础图层展示

来看个最简单的例子,在地图上画几个点:

python

复制

importpydeckaspdk importpandasaspd

准备数据

data=pd.DataFrame({ 'lat':[39.9042,31.2304,30.5928], 'lon':[116.4074,121.4737,114.3055], 'city':['北京','上海','广州'] })

创建图层

layer=pdk.Layer( 'ScatterplotLayer', data, get_position=['lon','lat'], get_radius=20000, get_fill_color=[255,0,0] )

设置视角

view=pdk.ViewState( latitude=35.0, longitude=110.0, zoom=4 )

渲染地图

deck=pdk.Deck(layers=[layer],initial_view_state=view) deck.to_html('map.html')

3.

花式图层玩法

PyDeck最牛的地方是它支持超多种图层类型。想画路线?用PathLayer。要显示区域热力?HeatmapLayer安排上。甚至还能整出3D柱状图,用ColumnLayer就成。

python

复制

热力图示例

heatmap_layer=pdk.Layer( 'HeatmapLayer', data, get_position=['lon','lat'], intensity=1, threshold=0.75 )

温馨提示:搞3D效果的时候最好调整下视角,不然可能看不出立体感。

4.

交互功能

PyDeck生成的地图不是死的,可以拖动、缩放、旋转,还能加上弹窗:

python

复制

layer=pdk.Layer( 'ScatterplotLayer', data, get_position=['lon','lat'], pickable=True, auto_highlight=True, get_radius=20000 )

tooltip={“html”:“城市:{city}”}

deck=pdk.Deck( layers=[layer], initial_view_state=view, tooltip=tooltip )

5.

高级技巧

要是想整点高级的,PyDeck还能搞定动态更新和自定义样式:

python

复制

自定义颜色函数

defget_color(d):val=d['value'] ifval>100:return[255,0,0] return[0,255,0]

layer=pdk.Layer( 'ScatterplotLayer', data, get_position=['lon','lat'], get_fill_color=get_color )

搞数据可视化的时候,要是能用上PyDeck,真是不要太爽。不过玩的时候记得看着点内存占用,数据量太大容易卡住浏览器。

代码写完记得保存,别跟我一样搞了半天忘记保存,关掉就没了,哭都找不着调。

0 阅读:0

多多简单说

简介:中国加油,中国体育健儿加油!用实力赢荣誉!