我有以下代码段工作:
import numpy as np
import bokeh.plotting as bp
from bokeh.models 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')
fig.select(dict(type=HoverTool)).tooltips = {"x":"$x", "y":"$y"}
bp.show()
没有liine s1.select ...返回一个生成器并给我以下错误:
AttributeError: 'generator' object has no attribute 'tooltips'
对运行此代码的进程进行了服务器更新。散景可能已经更新。什么是我最快的解决方法?还是我错过了一个错误?
答案 0 :(得分:5)
前一段时间,字形方法已更改为返回字形渲染器,而不是绘图。这使得配置字形渲染器的可视属性变得更加容易。返回绘图是多余的,因为用户通常已经具有对绘图的引用。但是你想在图上搜索悬停工具,而不是字形渲染器,所以你需要这样做:
String selectQuery_all_books = "SELECT " + TABLE_BOOKS + "." + KEY_TITLE_ID + " As _id, "
+ KEY_TITLE + ", " + KEY_PRICE + ", " + KEY_ISBN
+", GROUP_CONCAT(" + KEY_AUTHOR + ", ', ') AS authors"
+ " FROM " + TABLE_BOOKS + " JOIN " + TABLE_AUTHORS
+ " USING (" + KEY_TITLE_ID + ")"
+ " GROUP BY " + KEY_TITLE_ID;
请注意,使用字典意味着无法保证工具提示的顺序。如果您关心订单,则应使用元组列表:
fig.select(HoverTool).tooltips = {"x":"$x", "y":"$y"}
然后工具提示行将以与给定的顺序(从上到下)显示。