Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

326
Vistas
Use la ubicación ajustada de la herramienta de desplazamiento de bokeh en la devolución de llamada del evento CustomJS

En un cuaderno de Databricks, estoy trazando una curva usando bokeh. Quiero que el usuario pueda pasar el cursor sobre el gráfico, hacer que se ajuste a la curva y luego, mediante un clic del mouse, tener la capacidad de imprimir datos (x, y) para el punto de la curva que tiene su cursor. ajustado a.

Como verás a continuación, estoy a mitad de camino. La herramienta flotante permite que el cursor del usuario se ajuste a la curva, y la devolución de llamada de JS imprimirá los datos (x, y) en la ubicación del cursor en el gráfico al hacer clic con el mouse. El problema es que quiero que el (x, y) impreso no se corresponda con la ubicación del cursor (lo que está haciendo actualmente), sino con la ubicación en la curva a la que se ajusta la herramienta flotante. ¿Es posible obtener esa información desde la herramienta de desplazamiento hasta la devolución de llamada del evento?

 import bokeh.embed as bembed from bokeh import events from bokeh.io import output_file from bokeh.layouts import row from bokeh.models import CustomJS, Div from bokeh.plotting import figure from bokeh.models import HoverTool from bokeh.resources import CDN def display_event(div, attributes=[], style = 'float:left;clear:left;font_size=13px'): return CustomJS(args=dict(div=div), code=""" const attrs = %s; const args = []; for (let i = 0; i<attrs.length; i++) { args.push(attrs[i] + '=' + Number(cb_obj[attrs[i]]).toFixed(2)); } const line = "<span style=%r><b>" + cb_obj.event_name + "</b>(" + args.join(", ") + ")</span>\\n"; const text = div.text.concat(line); const lines = text.split("\\n") if (lines.length > 35) lines.shift(); div.text = lines.join("\\n"); """ % (attributes, style)) x = [0, 1, 2] y = [0, 1, 2] p = figure() p.line(x, y) hover = HoverTool(tooltips=[ ("(x, y)", "(@x, @y)") ]) hover.point_policy='snap_to_data' p.add_tools(hover) div = Div(width=400, height=p.height, height_policy="fixed") layout = row(p, div) point_attributes = ['x', 'y'] p.js_on_event(events.Tap, display_event(div, attributes=point_attributes)) displayHTML(bembed.file_html(layout, CDN))
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda