0

I have an overlay figure using hvplots and would like to turn all tools off by default. I know that when you have a figure handle, this could be done as described here, using plot.toolbar.active_drag = None. However, when trying to use this approach on a Ndoverlay object, I get the error 'NdOverlay' object has no attribute 'toolbar'. I also tried to add the overlay to an empty holoview figure with fig.add_layout and fig.add_glyphs, but this didn't work either. How can I achieve the desired behavior?

MWE:

import numpy as np
import holoviews as hv
hv.extension('bokeh')

points = [(0.1*i, np.sin(0.1*i)) for i in range(100)]
overlay =hv.NdOverlay({interp: hv.Curve(points[::8]).opts(interpolation=interp, width=600)
                       for interp in ['linear', 'steps-mid', 'steps-pre', 'steps-post']})
overlay
Paul
  • 211
  • 1
  • 8

1 Answers1

0

I found a way to do it based on the answers to this question, by rendering it as a bokeh figure.

import numpy as np
import holoviews as hv
from bokeh.plotting import show
hv.extension('bokeh')

points = [(0.1*i, np.sin(0.1*i)) for i in range(100)]
overlay =hv.NdOverlay({interp: hv.Curve(points[::8]).opts(interpolation=interp, width=600)
                       for interp in ['linear', 'steps-mid', 'steps-pre', 'steps-post']})

plot = hv.render(overlay, backend='bokeh')
plot.toolbar.active_drag = None
show(plot)
Paul
  • 211
  • 1
  • 8