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()