Sono nuovo per bokeh e ho appena saltato dritto usando hovertool perché è per questo che volevo usare bokeh in primo luogo. Adesso sto tracciando dei geni e quello che voglio ottenere è costituito da più linee con la stessa coordinata y e quando si passa sopra una linea si ottiene il nome e la posizione di questo gene.Bokeh hovertool in plot multiplo
Ho provato a imitare l'esempio this, ma per qualche motivo non riesco nemmeno a visualizzare le coordinate.
Sono sicuro che se qualcuno che in realtà conosce il modo per aggirare bokeh guarda questo codice, l'errore sarà evidente e sarei molto grato se me lo mostrassero.
from bokeh.plotting import figure, HBox, output_file, show, VBox, ColumnDataSource
from bokeh.models import Range1d, HoverTool
from collections import OrderedDict
import random
ys = [10 for x in range(len(levelsdf2[(name, 'Start')]))]
xscale = zip(levelsdf2[('Log', 'Start')], levelsdf2[('Log', 'Stop')])
yscale = zip(ys,ys)
TOOLS="pan,wheel_zoom,box_zoom,reset,hover"
output_file("scatter.html")
hover_tips = levelsdf2.index.values
colors = ["#%06x" % random.randint(0,0xFFFFFF) for c in range(len(xscale))]
source = ColumnDataSource(
data=dict(
x=xscale,
y=yscale,
gene=hover_tips,
colors=colors,
)
)
p1 = figure(plot_width=1750, plot_height=950,y_range=[0, 15],tools=TOOLS)
p1.multi_line(xscale[1:10],yscale[1:10], alpha=1, source=source,line_width=10, line_color=colors[1:10])
hover = p1.select(dict(type=HoverTool))
hover.tooltips = [
("index", "$index"),
("(x,y)", "($x, $y)"),
]
show(p1)
il levelsdf2
è un pandas.DataFrame, se è importante.
Puoi anche pubblicare l'immagine della tua trama. Perché interpretarlo dal codice mi sembra difficile. Sono nella stessa situazione in questo momento. Questa domanda è salva la vita per me. – mousecoder
Sarebbe stata un'opzione per tracciare semplicemente più linee singole, come ad es. dato in questo snippet di codice? https://github.com/bokeh/bokeh/issues/3454#issuecomment-168238796 – osdf