禁用跟踪上的悬停信息,情节

Posted

技术标签:

【中文标题】禁用跟踪上的悬停信息,情节【英文标题】:Disable hover information on trace, plotly 【发布时间】:2015-11-25 23:34:25 【问题描述】:

我目前正在使用 plotly 服务来绘制一些水质数据。我添加了一些线来表示水质的各个阶段,它们被阴影化,因此它们是绿色、黄色和红色。

我已经能够从图例中删除一些不必要的行,但是当将鼠标悬停在数据上时它们仍然会出现。我看过这里text and annotations 但是当尝试使用“hoverinfo”参数时,我得到了一个

"plotly.exceptions.PlotlyDictKeyError: 无效键,'hoverinfo',对于 类,'Scatter'。”

错误。是否有另一种方法可以为散点图执行此操作?到目前为止,我已经查看并没有发现任何有用的信息。

这是我目前尝试设置跟踪的方式:

badNTULevel = Scatter(                                                                              
x=[],                                                                                           
y=[100],                                                                                        
mode='lines',                                                                                   
line=Line(                                                                                      
    opacity=0.5,                                                                                
    color='rgb(253,172,79)',                                                                    
    width=1,                                                                                    
),                                                                                              
stream=Stream(                                                                                  
    token=stream_ids[3],                                                                        
    maxpoints=80                                                                                
),                                                                                              
hoverinfo='none',                                                                               
fill='tonexty',                                                                                 
name="Water Treatment Plants Can't Process over 100"
)                                        

任何帮助将不胜感激。

【问题讨论】:

您必须将“validate=False”添加到您的绘图调用中,并使用dict 而不是Scatter。这将绕过您看到的验证错误。有关更多信息,请参阅此示例:plot.ly/python/text-and-annotations/#disabling-hover-text @ChrisP 我刚刚有机会尝试一下。不幸的是,即使验证设置为 false,它仍然会给出相同的错误。请看这个更大的代码 sn-p here 它在第 134 行抛出错误。 好的,也将Figure 更改为dict(无论如何它只是一个简单的子类)。长话短说,验证过时的特色键,这会导致验证错误,只要使用来自plotly.graph_objs 的子类dict @ChrisP 成功了,谢谢! 只有设法将数据对象从 Scatter(dict) 直接跳过到 Figure(also dict)。 【参考方案1】:

在您的跟踪中添加:hoverinfo='skip'

trace = dict(
             x=[1,2,3,4],
             y=[1,2,3,4],
             hoverinfo='skip'
            )

【讨论】:

【参考方案2】:
from plotly.offline import plot
import plotly.graph_objs as go

def spline(x_axis,loop):

     trace = go.Scatter(
        x = x_axis,
        y = loop[i],
        fill = 'tonexty',
        mode ='lines',
        showlegend = False,
        hoverinfo='none'
        )

    data = [trace]



    layout = go.Layout(
        title='Graph title here',
        height=600,
        xaxis=dict(
            autorange=True
        ),
        yaxis=dict(
            autorange=True
        )
    )
    fig = go.Figure(data=data, layout=layout)
    # plot(fig, filename='spline.html')
    plot_div = plot(fig, output_type='div', include_plotlyjs=False)
    return plot_div

【讨论】:

@Shinto_Joseph 你能否为你的代码添加一些解释 它被写成一个函数... spline_graph = plots.spline(x_axis,loop,column,spline_percent,final_row) 。这样你就可以得到一个脚本到变量 spline_graph 中,你可以将它传递并显示到html页面使用ajax而不刷新页面。 在上面的代码中只输入 x 轴和循环只是 y 轴。showlegend = False, hoverinfo='none' 将禁用悬停和图例 你必须从 plotly.offline import plot import plotly.graph_objs as go 导入它,并像上面的例子一样添加 go 散点图【参考方案3】:

更通用的解决方案可能是设置 Layout 'hovermode' 属性,如下所示:

#...
layout = go.Layout(hovermode=False)
fig = go.Figure(data=data, layout=layout)
#...

此处为 Python 参考:https://plot.ly/python/reference/#layout

注意:这将禁用与该布局关联的所有跟踪的悬停文本...可能不是所需的行为。

【讨论】:

以上是关于禁用跟踪上的悬停信息,情节的主要内容,如果未能解决你的问题,请参考以下文章

首次加载android后如何禁用谷歌地图当前位置跟踪

如果被另一个元素覆盖,则响应 CSS 悬停选择器

SARSA-Lambda 实施中的情节之间的资格跟踪重新初始化

如果我将鼠标悬停在 Plotly 中,如何显示与图例中所述不同的跟踪名称?

apache_conf 禁用跟踪跟踪请求

apache_conf 禁用跟踪跟踪请求