绘图缩放标记区域

Plotly zoomed marker area

我的地图(我使用的是 Scatter Geo)上有多个标记(表示为纬度、经度),所有标记都有边缘。

我需要获取某个标记的缩放视图并将该视图保存到 .png 文件。

我可以手动执行此操作,缩放每个感兴趣的标记并截取屏幕截图,但我想通过代码执行此操作。

如何为标记列表创建循环并截取特定标记周围区域的屏幕截图?

一个circle/area以标记为中心,半径5公里就足够了

使用 Scattergeo 时,您可以使用 centerprojection_scale 返回一个区域。

projection_scale 类似于缩放级别,不是一个明显的使用参数:

Zooms in or out on the map view. A scale of "1" corresponds to the largest zoom level that fits the map's lon and lat ranges.

以下是改编自 here 的示例。

import plotly.graph_objects as go

import pandas as pd

df = pd.read_csv('2011_february_us_airport_traffic.csv')
df['text'] = df['airport'] + '' + df['city'] + ', ' + df['state'] + '' + 'Arrivals: ' + df['cnt'].astype(str)

fig = go.Figure(data=go.Scattergeo(
        lon = df['long'], lat = df['lat'],
        text = df['text'],
        mode = 'markers',
        marker_color = df['cnt'],
        ))

fig.update_layout(
        title = 'Most trafficked US airports<br>(Hover for airport names)',
        geo = dict(
            scope='usa',
            projection_type='albers usa',
            showland = True
        ))

# focus point
lat_foc = 35.21401111
lon_foc = -80.94312583
fig.update_layout(
        geo = dict(
            projection_scale=10, #this is kind of like zoom
            center=dict(lat=lat_foc, lon=lon_foc), # this will center on the point
        ))

fig.show()