繁体   English   中英

如何将自定义数据添加到 plotly Scattermapbox plot

[英]How to add customdata to a plotly Scattermapbox plot

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

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>",
    )
]

As explained in the tutorial https://plotly.com/python-api-reference/generated/plotly.graph_objects.Scattermapbox.html (under "Adding other data to the hover with customdata and a hovertemplate") I have tried to include the customdata == np.dstack((hover_1, hover_2)) go.Scattermapbox ,但尝试使用%customda[0}:.0f访问 hover_1 的第一个值不起作用。

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

这就是 hover 的样子:

示例 hover 的屏幕截图

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

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

在 plotly 图中, customdata应该类似于:

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

这样,当您在(1,3)上执行customdata[0]和 hover 时,您将a . 如果您在2,4上执行 hover 并执行customdata[1]您将得到d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM