使用plotly画地图

go.Scattermapbox()方法提供了多种symbol样式,但它只能呈现数据的单一维度(位置);而 px.scatter_mapbox()则支持将marker的size和color与不同列的值相关联,通过数据点的位置、颜色和大小多维度地呈现数据(marker的symbol不可改变)
所以,如果只是想标记数据点的位置,就用go.Scattermapbox()方法;而如果是想要在地图上多维度地呈现数据,则可以调用px.scatter_mapbox()方法

import plotly.express as px
import plotly.graph_objects as go

prop = pd.DataFrame(m[1:20],columns=['Station_Name','IAGA_CODE','lat','lon','Elevation'])
token = 'pk.eyJ1IjoiYmxhY2tzaGVlcHdhbGwwMzA1IiwiYSI6ImNrMHo5ZnQxYjBjb

fig = px.scatter_mapbox(prop,
                        lon = 'lon',  #输入经度坐标
                        lat = 'lat',  #输入纬度
                        size = 'size', #输入尺寸,对应excel的size栏,值越大尺寸越大,最大尺寸为下面的size_max
                        color ="color", #对应excel的color栏,每个值代表一种颜色
                        hover_name =None,#可以对应excel里面的某一栏
                        hover_data = None,#可以对应excel里面的某一栏
                        size_max = 16, 上面size尺寸的最大值
                        color_continuous_scale = px.colors.carto.Temps
                       )

fig.update_layout(mapbox = {'accesstoken': token, #需要到官网注册一个token
                            'center': {'lon': 106.573, 'lat': 30.66342},  #指定的地图中心
                            'zoom': 7.48,
                            'style': 'satellite', #显示的地图类型,有遥感地图,街道地图等类型
                           },
                  margin = {'l': 0, 'r': 0, 't': 0, 'b': 0})
fig.show() #显示地图
import pickle
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go

path='H:\\0地震\\台站信息\\201708九寨沟'
file=open(path,'rb')
m=pickle.load(file)
file.close
places=pd.DataFrame(m[1:],columns=['Station_Name','IAGA_CODE','lat','lon','Elevation'])
p=pd.DataFrame(m[1:20],columns=['Station_Name','IAGA_CODE','lat','lon','Elevation'])

#token = 'pk.eyJ1IjoiYmxhY2tzaGVlcHdhbGwwMzA1IiwiYSI6ImNrMHo5ZnQxYjBjbG8zbm84b3hrb25vb24ifQ.K8tcDjJDsPcjdYFTSVgTxw'

fig = go.Figure(go.Scattermapbox(mode='markers', 
                                 lon = places.lon,
                                 lat = places.lat,
                                 hovertext =places.Station_Name,
                                 hoverinfo = 'text',
                                 marker = dict(color='yellow',size=9)
                                 #marker_symbol = 'marker',
                                 #marker_size = 10,
                                 ))

fig.update_layout(mapbox = {'accesstoken': token,
                            'style':'satellite',
                            'center': {'lon': 106.573, 'lat': 30.66342}, 
                            'zoom': 7.48,
                           },
                  margin = {'l': 0, 'r': 0, 't': 0, 'b': 0})

fig.show()
  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值