背景
- 有时候在商业可视化里面,plotly是我用的比较多的一个工具。
- 而我工作,有时候也是需要通过地图来解析人群分布的。
- 又因为公司收集到的数据都是高德地图传递的经纬度,那如果不用高德地图来做底图,会有很大的偏移的。
说明
- 本文将介绍如何将高德地图、plotly、散点图结合起来。
代码
导入包
import plotly.graph_objects as go
import numpy as np
import pandas as pd
生成虚假的坐标
sampledata = pd.DataFrame({'lat': 39 + np.random.rand(1000),
'lon': 116+np.random.rand(1000), })
sampledata
数据是这样的:
可视化
basemap_layer = [
dict(
below="traces",
sourcetype="raster",
sourceattribution="高德地图",
source=[
"http://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7"
]
)
]
mapbox_kargs = dict(
zoom=7, # 这里的zoom代表地图瓦片缩放的等级,可以依次+1、-1试一试
center=dict(
lat=39.7, # 这里是设置你的地图的中心点,经纬度要设置好
lon=116.8,
),
style="white-bg",
layers=basemap_layer,
)
layout_kargs = dict(
autosize=False,
width=1000, # 这里设置的是输出的图的宽度和长度。
height=800,
margin=dict(
r=0, t=38, l=0, b=0, pad=0
),
)
layout = go.Layout(
mapbox=mapbox_kargs,
**layout_kargs
)
fig = go.Figure(
data=go.Scattermapbox(lat=sampledata['lat'], # 这里依次传递经纬度给函数
lon=sampledata['lon'],
mode='markers',
),
layout=layout
)
fig.write_html("file083101.html") # 将plotly保存为html文件,后续使用浏览器直接打开这个文件即可
效果大概是这样的:
更多
目前我正在测试天地图的可视化,下面分享几个截图,我后续会分享一系列的教程
其实天地图使用的门槛对大部分人来说,太高了,需要会使用javascript。但是大部分人连R或者python都很难用起来,更别说js了。
但是我后面会把天地图一系列开发工具用R、python实现,降低大家使用门槛。请大家一起期待一下吧~
阅读更多
list