我想使用Bokeh HoverTool和Line / Scatter Plot。贝娄是代码(大部分来自http://bokeh.pydata.org/docs/gallery/correlation.html)。在我的例子中,Hover仅显示" acme"我无法弄清楚如何让它适用于另一条线路#43; choam"。任何建议/解决方案?
from numpy import cumprod, linspace, random
import time
from bokeh.plotting import *
from bokeh.objects import GridPlot, HoverTool
num_points = 20
now = time.time()
dt = 24*3600
dates = linspace(now, now + num_points*dt, num_points)
acme = cumprod(random.lognormal(0.0, 0.04, size=num_points))
choam = cumprod(random.lognormal(0.0, 0.04, size=num_points))
output_file("correlation.html", title="correlation.py example")
source = ColumnDataSource(
data=dict(
acme=acme,
choam=choam,
dates=dates
)
)
figure(x_axis_type = "datetime", tools="hover,pan,wheel_zoom,box_zoom,reset,previewsave")
hold()
line(dates, acme, color='#1F78B4', legend='ACME')
line(dates, choam, color='#FB9A99', legend='CHOAM')
scatter(dates, acme, color='#1F78B4', source = source, fill_color=None, size=8)
scatter(dates, choam, color='#33A02C', fill_color=None, size=8)
curplot().title = "Stock Returns"
grid().grid_line_alpha=0.3
hover = [t for t in curplot().tools if isinstance(t, HoverTool)][0]
hover.tooltips = OrderedDict([
('Price', "@acme"),
('Price', "@choam"),
('Date', "@dates"),
('Date', "@dates"),
])
show()
答案 0 :(得分:1)
使用0.8,我使用了类似的东西来绘制多个图:
source1 = ColumnDataSource(
data=dict(
acme=acme,
dates=dates
)
)
source2 = ColumnDataSource(
data=dict(
choam=choam,
dates=dates
)
)
scatter(dates, acme, color='#1F78B4', source = source1, fill_color=None, size=8)
scatter(dates, choam, color='#33A02C', source = source2, fill_color=None, size=8)
无法保证它会继续工作 - 仍在等待行工具提示:)