绘图缩放标记区域
Plotly zoomed marker area
我的地图(我使用的是 Scatter Geo)上有多个标记(表示为纬度、经度),所有标记都有边缘。
我需要获取某个标记的缩放视图并将该视图保存到 .png 文件。
我可以手动执行此操作,缩放每个感兴趣的标记并截取屏幕截图,但我想通过代码执行此操作。
如何为标记列表创建循环并截取特定标记周围区域的屏幕截图?
一个circle/area以标记为中心,半径5公里就足够了
使用 Scattergeo
时,您可以使用 center
和 projection_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()
我的地图(我使用的是 Scatter Geo)上有多个标记(表示为纬度、经度),所有标记都有边缘。
我需要获取某个标记的缩放视图并将该视图保存到 .png 文件。
我可以手动执行此操作,缩放每个感兴趣的标记并截取屏幕截图,但我想通过代码执行此操作。
如何为标记列表创建循环并截取特定标记周围区域的屏幕截图?
一个circle/area以标记为中心,半径5公里就足够了
使用 Scattergeo
时,您可以使用 center
和 projection_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()