2016-04-05 5 views
2

私はBokehに非常に多くの点をプロットしていて、HoverToolを図のツールのリストに追加して、マウスがx,yグリフに近い。HoverTool()ツールを使用しているときに1つのツールチップのみを表示する

マウスが密接に詰まったグリフのセットに近づくと、グリフと同じくらい多くのツールチップが表示されます。代わりに、最も近いグリフの1つのヒントだけが必要です。プロットと遅いの相互作用で

  • 、ブラウザですべてのツールチップは非常に長いツールチップに
  • 生成されながら立ち往生:非常に多くのポイントのために、これが結果ので、これは、単にプレゼンテーションの詳細ではありません enter image description here

    import numpy.random 
    from bokeh.plotting import figure, output_notebook, show 
    from bokeh.models import HoverTool 
    output_notebook() 
    
    hover = HoverTool() 
    hover.tooltips = [("(x,y)", "($x, $y)")] 
    
    x = numpy.random.randn(500) 
    y = numpy.random.randn(500) 
    
    p = figure(tools=[hover]) 
    p.circle(x,y, color='red', size=14, alpha=0.4) 
    
    show(p) 
    
    :同じ情報は、動作を複製するためのコードと、のような多くのグリフが

例では、以下のカーソルに近い回数だけ繰り返されます

+0

「0.12」リリースに入るホバーのツールチップ設定のポリシーベースのオプションを改善するためのオープンPRがあります。 – bigreddot

+0

これに関する更新、つまりHoverToolに表示されるデータポイントの数を制限する方法はありますか? – tuomastik

答えて

2

私は同様の問題を抱えていて、カスタムツールチップを使用したソリューションを思いつきました。私は最初の子を表示するだけのスタイルタグをdiv.bk-tooltipクラスの下に挿入します。これは最初のツールチップです。ここで

は作業例です:

from bokeh.plotting import figure, show 
from bokeh.models import HoverTool, Range1d 

custom_hover = HoverTool() 

custom_hover.tooltips = """ 
    <style> 
     .bk-tooltip>div:not(:first-child) {display:none;} 
    </style> 

    <b>X: </b> @x <br> 
    <b>Y: </b> @y 
""" 

p = figure(tools=[custom_hover]) #Custom behavior 
#p = figure(tools=['hover']) #Default behavior 

p.circle(x=[0.75,0.75,1.25,1.25], y=[0.75,1.25,0.75,1.25], size=230, color='red', fill_alpha=0.2) 
p.y_range = Range1d(0,2) 
p.x_range = Range1d(0,2) 

show(p) 

これはハックソリューションの一種であるが、それはサファリ、FirefoxとChromeで動作します。私は彼らがより長期的にsolution soonで出てくると思う。

関連する問題