ChrisDevWard
ChrisDevWard

Reputation: 965

Disable hover information on trace, plotly

I'm currently using the plotly service to graph some water quality data. I've added some lines to represent the the various stages of water quality, with them shaded so they are green, yellow, and red.

I've been able to remove some unnecessary lines from the legend, but they still show up when hovering over the data. I've looked here text and annotations but when trying to use the "hoverinfo" parameter, I get a

"plotly.exceptions.PlotlyDictKeyError: Invalid key, 'hoverinfo', for class, 'Scatter'."

error. Is there an alternative way to doing this for the Scatter plot? So far I've looked and have found nothing too helpful.

Here is how I'm currently trying to set up the trace:

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

Any help would be appreciated.

Upvotes: 45

Views: 83928

Answers (5)

Võ Duy Sơn
Võ Duy Sơn

Reputation: 31

For plotly express:

fig.update_traces(hoverinfo='skip', hovertemplate=None)

Upvotes: 0

Hamzah Al-Qadasi
Hamzah Al-Qadasi

Reputation: 9786

If you use plotly.express, you can use this line, instead:

fig.update_layout(hovermode=False)

Upvotes: 7

Henrique Florencio
Henrique Florencio

Reputation: 3751

On your trace add: hoverinfo='skip'

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

Upvotes: 75

dpb
dpb

Reputation: 3882

A more general-purpose solution may be to set the Layout 'hovermode' property, as follows:

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

Reference for Python here: https://plot.ly/python/reference/#layout

NB: This will disable hover text for all traces associated with that layout... May not be the desired behaviour.

Upvotes: 3

Shinto Joseph
Shinto Joseph

Reputation: 3093

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

Upvotes: 12

Related Questions