es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo desactivar la herramienta Hover específica en las figuras html de Bokeh?

Quiero que la herramienta “pan” de la barra de herramientas Hover esté DESACTIVADA cuando abro la página html. Por defecto, la herramienta está ACTIVADA. ¿Cómo se desactiva por defecto?
Figura – Intentando “desactivar” la herramienta “pan” por defecto

El problema parece surgir al utilizar un eje x compartido (grid plot).
El comando p.toolbar.active_drag = None no ayuda; la herramienta “pan” sigue activa.
¿Alguna idea de cómo solucionar esto?

Ejemplo

from bokeh.plotting import ColumnDataSource, figure, output_file, show, output_notebook, reset_output
from bokeh.models import HoverTool, Grid
from bokeh.layouts import gridplot
import datetime

reset_output()
output_notebook()
tools = 'pan,wheel_zoom,xbox_select,reset'
source = ColumnDataSource(data=dict(time=[2231231233123, 1431231233123, 1731231233123],y=[2, 5, 3],))
source2 = ColumnDataSource(data=dict(time=[1231231233123, 1431231233123, 1731231233123],x=[1, 2, 3],))

h1>Figura 1:

p = figure(width=400, height=200, x_axis_type="datetime",tools=tools)
p.circle('time', 'y', size=20, source=source)
p.toolbar.active_drag = None

<h1>Figura 2:</h1>

p2 = figure(x_range=p.x_range,width=400,height=200,x_axis_type="datetime",tools=tools)
p2.circle('time', 'x', size=20, source=source2)
p2.toolbar.active_drag = None

grid = gridplot([p, p2], ncols=1)
show (grid)

Ejemplo Ilustrativo

Figura que ilustra el problema

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para desactivar la herramienta de panorámica de forma predeterminada en la barra de herramientas de Hover, puede modificar el parámetro tools de la creación de la figura para incluir hover sin pan. Esto eliminará la herramienta de panorámica de la barra de herramientas de forma predeterminada. Por ejemplo:

    tools = 'hover, wheel_zoom, xbox_select, reset'
    p = figure(width=400, height=200, x_axis_type="datetime", tools=tools)
    

    Si desea eliminar la herramienta de panorámica después de que se haya creado la figura, puede acceder al objeto de la barra de herramientas y establecer su atributo active_drag en None:

    p.toolbar.active_drag = None
    

    Sin embargo, como sugiere la ilustración del problema, este enfoque puede no funcionar correctamente al utilizar una cuadrícula de ejes x compartida. En ese caso, puede intentar establecer el parámetro match_aspect del objeto Grid en True:

    grid = gridplot([p, p2], ncols=1, match_aspect=True)
    

    Esto debería eliminar la herramienta de panorámica de la barra de herramientas de forma predeterminada y hacerla inactiva incluso si intenta activarla manualmente.

Comments are closed.