如何解决如何将自定义数据添加到可绘制的 Scattermapbox 图
我在地图上用 go.ScattermapBox
显示不同的气候测量站。现在我想通过在 customdata
命令中使用 hovertemplate
在悬停中包含多个不同的值。
这适用于作为图表一部分的值(如纬度、经度),但我无法弄清楚如何使 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 中所述(在“使用自定义数据和悬停模板将其他数据添加到悬停”下)
我曾尝试在 customdata == np.dstack((hover_1,hover_2))
中包含 go.ScattermapBox
命令,但尝试使用 %customda[0}:.0f
访问悬停模板中 hover_1 的第一个值不起作用。
hover_1 和hover_2 保存了所有显示站的高度各自测量方法的值(即每个站的长度与站数相同)。
这就是悬停的样子:
解决方法
可能 customdata
未显示是因为 customdata
数组的长度与 lat
和 lon
变量的长度不匹配。
当您执行 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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。