首页 > 解决方案 > 如何获得最大气泡python plotly open street map的半径?

问题描述

为了进行进一步的分析,我想得到最大气泡的半径?如果我能得到另一个具有气泡半径的列会更好。

当前代码:

fig = px.scatter_mapbox(df, lat="GPSLat", lon="GPSLng", zoom=15, height=500,width=1000,
                        size="Count",color="Device",title=' All device :2021/01/08')
fig.update_layout(mapbox_style="satellite") 
fig.show()

东风:

Device  GPSLat  GPSLng  Count
1001    6.8050  80.0154 9.0
1001    6.6050  80.2154 12.0
1001    6.7050  80.4154 114.0
1002    6.8050  80.0154 2.0
1001    6.5050  80.0154 2111.0

标签: pythonplotlymapboxopenstreetmapplotly-python

解决方案


如评论所述,将自动计算和绘制直径或半径。如果您获得绘图数据,您将看到气泡大小基于您的“计数”。

import plotly.express as px
import pandas as pd
import numpy as np
import io

data = '''
Device  GPSLat  GPSLng  Count
1001    6.8050  80.0154 509.0
1001    6.6050  80.2154 1200.0
1001    6.7050  80.4154 840.0
1002    6.0050  80.0154 1602.0
1001    6.5050  80.0154 2111.0
'''
df = pd.read_csv(io.StringIO(data), delim_whitespace=True)

import plotly.express as px

px.set_mapbox_access_token(open("mapbox_api_key.txt").read())
fig = px.scatter_mapbox(df,
                        lat="GPSLat",
                        lon="GPSLng",
                        hover_name='Device',
                        height=500, width=1000,
                        zoom=8,
                        size="Count",
                        color="Count",
                        title=" All device :2021/01/08",
                        mapbox_style='satellite')

fig.show()

在此处输入图像描述

fig.data
(Scattermapbox({
     'hovertemplate': ('<b>%{hovertext}</b><br><br>Cou' ... 'r>GPSLng=%{lon}<extra></extra>'),
     'hovertext': array([1001., 1001., 1001., 1002., 1001.]),
     'lat': array([6.805, 6.605, 6.705, 6.005, 6.505]),
     'legendgroup': '',
     'lon': array([80.0154, 80.2154, 80.4154, 80.0154, 80.0154]),
     'marker': {'color': array([ 509., 1200.,  840., 1602., 2111.]),
                'coloraxis': 'coloraxis',
                'size': array([ 509., 1200.,  840., 1602., 2111.]),
                'sizemode': 'area',
                'sizeref': 5.2775},
     'mode': 'markers',
     'name': '',
     'showlegend': False,
     'subplot': 'mapbox'
 }),)

# marker size
fig.data[0]['marker']['size']
array([ 509., 1200.,  840., 1602., 2111.])

推荐阅读