2015-03-11 8 views
16

Ho un semplice grafico di punti dati X-Y. Voglio che la mia figura Bokeh mi mostri il valore intero di ogni punto dati quando lo alzo su di esso. Sono vicino a ottenere ciò che voglio ma quando passo il mouse sopra il punto dati, mostra un float e poi più in alto, utilizza la notazione scientifica. C'è un modo per avere lo strumento hover solo restituire i valori interi di X e Y e non usare la notazione scientifica?come mostrare un numero intero, non mobile, con suggerimento al passaggio del mouse nel bokeh

Ecco qualche esempio di codice:

from bokeh.plotting import * 
from bokeh.models import HoverTool 

x = range(1,101) 
y = [i*i for i in x] 

TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select, hover" 

p = figure(x_axis_label = "Days", 
     y_axis_label = "Return", 
     tools=TOOLS) 
p.circle(x, y) 

#adjust what information you get when you hover over it 
hover = p.select(dict(type=HoverTool)) 
hover.tooltips = [ 
    ("Days", "$x"), 
    ("Return", "$y"), 
] 

show(VBox(p)) 

risposta

9

Aha! Usando @ invece di $ funziona.

hover.tooltips = [ 
    ("Days", "@x"), 
    ("Return", "@y"), 
] 
+0

Grazie per aver condiviso queste informazioni, ho avuto lo stesso problema –

+0

yep '$ x' è il punto dati canvas incorporato del puntatore del mouse,' @ x' è il punto dati effettivo indipendentemente da dove si passa il mouse sopra il glifo. – jxramos

27

Aggiungere i miei due centesimi. Ho capito da voi è possibile controllare i punti decimali utilizzando il seguente codice:

hover.tooltips = [ 
    ("Days", "@x{int}"), # this will show integer, even if x is float 
    ("Return", "@y{1.11}"), # this will format as 2-decimal float 
] 

Spero che questo aiuti.

+2

Will, curioso se sai come ridimensionare y e quindi formattarlo. per esempio, supponiamo di voler moltiplicare y per 100 e riportare come percentuale. qualche idea su come specificarlo? – Chris

+0

Questo è fantastico. Sai se c'è una notazione per le date di formattazione come questa? Non sono riuscito a trovarlo nei documenti; ti capita di avere un link dove si trova? Grazie! – ryanjdillon

+0

@Chris mi dispiace non sapere di un flag per la formattazione percentuale. Suppongo che tu abbia già provato i flag di formattazione di Python? Quello che farei è creare un'altra colonna nella tua fonte di dati e tracciare quella che invece, non perfetta, potrebbe portarti lì. – WillZ