【问题标题】:How to add customdata to a plotly Scattermapbox plot如何将自定义数据添加到 plotly Scattermapbox 图中
【发布时间】:2021-03-11 08:58:37
【问题描述】:

我在带有go.Scattermapbox 的地图中显示不同的气候测量站。现在我想通过在hovertemplate 命令中使用customdata 在悬停中包含多个不同的值。 这适用于作为图表一部分的值(如 lat、lon),但我不知道如何使 customdata 命令与外部数据一起工作(例如,在悬停框中添加高度值)。

plot_data = [
    go.Scattermapbox(
        lon=data_slctd["longitude"], 
        lat=data_slctd["latitude"], 
        mode="markers", 
        text = data_slctd.site_name.tolist(), 
        hovertemplate =  "<b>%{text}</b><br><br>" + "longitude: %{lon:.2f}<br>" + "latitude: %{lat:.2f}<br>" + "altitude: %{customdata[0]:.0f}<br>"+ "ppm: %{marker.color:.2f}<extra></extra>",
    )
]

如教程https://plotly.com/python-api-reference/generated/plotly.graph_objects.Scattermapbox.html 中所述(在“使用自定义数据和悬停模板将其他数据添加到悬停”下) 我尝试在go.Scattermapbox 中包含customdata == np.dstack((hover_1, hover_2)) 命令,但尝试使用%customda[0}:.0f 访问hovertemplate 中hover_1 的第一个值无效。

hover_1 和 hover_2 分别保存显示的所有站点的高度值(即每个站点的长度与站点数量相同)。

这就是悬停的样子:

Screenshot of exemplary hover

【问题讨论】:

    标签: python hover plotly


    【解决方案1】:

    可能customdata 未显示,因为customdata 数组的长度与latlon 变量的长度不匹配。 当您执行customdata[0] 时,您试图获取customdata 数组的子列表的第一个元素。 例如,如果您有

    x = [1,2,3],
    y = [3,4,5]
    

    在情节图中,customdata 应该是这样的:

    customdata = [
      ["a", "b"],
      ["c", "d"],
      ["e", "f"],
    ]
    

    这样,当您执行customdata[0] 并将鼠标悬停在(1,3) 上时,您将获得a。 如果您将鼠标悬停在2,4 上并执行customdata[1],您将获得d

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 2020-02-12
      • 2012-04-06
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      相关资源
      最近更新 更多