【问题标题】:Plotly zoomed marker area绘制缩放标记区域
【发布时间】:2020-09-18 00:27:41
【问题描述】:

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

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

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

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

中心有标记,半径5公里的圆圈/区域就足够了

【问题讨论】:

  • 在这种情况下,我想我会遍历每个标记,创建一个无花果,然后使用 orca 输出,但是如果没有看到你到目前为止所拥有的内容,就很难具体说明。
  • @jayveesea 这里的问题是我有例如边缘(A,C),(B,C)在地理上远离C,我想放大C并显示边缘去A和B,我不在乎A和B节点是否可见
  • 问题不是如何创建一个包含所有边和节点的图形,而是在整个图形完成后如何缩放特定节点
  • 澄清一下,只画出你想看的点,拍一张快照,然后移动到下一个点并重复。
  • @jayveesea 我不能只绘制一个点,我需要边缘和美国地图,我可以手动缩放每个节点,但这会带来非常糟糕的结果

标签: python plotly zooming


【解决方案1】:

当使用Scattergeo 时,您可以使用centerprojection_scale 回到某个区域。

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

放大或缩小地图视图。 “1”的比例对应于 适合地图经度和纬度范围的最大缩放级别。

以下是改编自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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    相关资源
    最近更新 更多