python - Plotly hoverinfo 显示所有数据点而不是当前点

标签 python plotly scatter-plot

我无法让 plotly 的 hoverinfo 属性显示给定点的单个值。作为引用,我在 map 上绘制了一堆点,并希望能够将鼠标悬停在一个点上并查看其唯一标识符。如果我没有为 hoverinfotext 设置任何值,我会在悬停时看到单个点的纬度和经度值。但是,当我设置 text=nodes.Nodehoverinfo="text" 时,将鼠标悬停在任意点上时,我会看到所有节点的列表。下面的代码产生了一个最小的例子(在 jupyter notebook 中):

import pandas as pd
import plotly.offline as py
from plotly.graph_objs import *
py.init_notebook_mode()

nodes = pd.DataFrame({
    'Node': [103,131,136,143,153],
    'Lat': [39.97703048,39.98315706,40.02686848,40.02110808,40.01174032],
    'Lon': [-83.00179533,-82.97803884,-82.97319305,-83.01509991,-82.97285888]
})
mapbox_access_token = some_mapbox_token
data = Data([
    Scattermapbox(
        lat=nodes.Lat,
        lon=nodes.Lon,
        mode='markers',
        marker=Marker(
            size=2,
            color='red',
            opacity=0.7
        ),
        text=nodes.Node,
        hoverinfo='text'
    )]
)
layout = Layout(
    title='Nodes interacting with busiest TAZ',
    autosize=True,
    hovermode='Closest',
    showlegend=False,
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,
        center=dict(
            lat=39.983333,
            lon=-82.983333
        ),
        pitch=0,
        zoom=7.5
    ),
)

我是否错误地设置了 text?还是与 hoverinfohovermode 有关?

最佳答案

在我看来这像是一个错误或未指明的行为。您的代码看起来非常好,您只需要传递一个字符串列表而不是整数,它应该可以工作。

    text=[str(n) for n in nodes.Node]

enter image description here

关于python - Plotly hoverinfo 显示所有数据点而不是当前点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42723442/

相关文章:

python - 计算一个较大数字的位数

python - 如何在另一个模型中使用用户模型的过滤方法(django)

python - plotly .ly : Different height for subplots with shared X-Axes

python - Plotly 表达条形图颜色变化

python - plotly 表达: how to control bars start position?

python - 更新当前显示的变量

python - 我可以在单元测试的设置阶段编译 numba 吗?

java - 如何在散点图中添加一条线? (Java、jmathplot)

java - 来自数据库的jfreechart中的散点图

r - 向聚类散点图 (tSNE) 添加文本注释