散景中可能的更新导致奇怪的生成器错误

时间:2016-02-15 14:03:46

标签: python bokeh

我有以下代码段工作:

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'

对运行此代码的进程进行了服务器更新。散景可能已经更新。什么是我最快的解决方法?还是我错过了一个错误?

1 个答案:

答案 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"}

然后工具提示行将以与给定的顺序(从上到下)显示。