Ho il seguente script di esempio piccolo facendo uso di NumPy e bokeh:HoverTool per la serie di dati multiple nella trama bokeh dispersione
import numpy as np
import bokeh.plotting as bp
from bokeh.objects import HoverTool
bp.output_file('test.html')
fig = bp.figure(tools="reset,hover")
x = np.linspace(0,2*np.pi)
y1 = np.sin(x)
y2 = np.cos(x)
s1 = fig.scatter(x=x,y=y1,color='#0000ff',size=10,legend='sine')
s1.select(dict(type=HoverTool)).tooltips = {"x":"$x", "y":"$y"}
s2 = fig.scatter(x=x,y=y2,color='#ff0000',size=10,legend='cosine')
s2.select(dict(type=HoverTool)).tooltips = {"x":"$x", "y":"$y"}
bp.show()
Il problema è che lo strumento hover funziona solo per la curva del coseno, ma non per il sine.
So che una possibilità sarebbe quella di tracciare entrambe le serie togehter e cambiare il colore dei punti dati cosine:
import numpy as np
import bokeh.plotting as bp
from bokeh.objects import HoverTool
bp.output_file('test.html')
fig = bp.figure(tools="reset,hover")
x = np.linspace(0,2*np.pi)
y1 = np.sin(x)
y2 = np.cos(x)
x = np.array([x,x]).flatten()
y = np.array([y1,y2]).flatten()
blue = np.array('#0000ff').flatten()
red = np.array('#ff0000').flatten()
colors = np.array([blue.repeat(len(y1)),red.repeat(len(y1))]).flatten()
s1 = fig.scatter(x=x,y=y,color=colors,size=10,legend='sine & cosine')
s1.select(dict(type=HoverTool)).tooltips = {"x":"$x", "y":"$y"}
bp.show()
Ma poi perdo la voce di legenda per il secondo colore.
Come faccio a essere in grado di passare con il mouse su entrambi i set di dati e visualizzare il suggerimento corrispondente?
Grazie!
Max
Grazie mille! Funziona come un fascino! – Max
Ho ricevuto questo errore: AttributeError: l'oggetto 'generator' non ha attributo 'tooltips'. Ho aggiornato il mio bokeh usando questo comando: pip installa --pre -i https://pypi.anaconda.org/bokeh/channel/dev/simple bokeh --extra-index-url https://pypi.python.org/ simple/ –
Lo stesso problema di Hamid su 0.10 – dranxo