我正在尝试在Jupyter中使用Bokeh直方图,但我发现它非常慢,我不知道为什么。
这就是我正在做的事情。我从SQLite读取并存储在'res'
中生成100行(最初方式更大,但将其限制为100用于测试目的)sqlStr ='Select SecsSincePrevPlay as MinsSinceFirstPlay from tblMain order by userID, historyID limit 100'
res = pd.read_sql_query(sqlStr, db)
我已经检查了它的一部分并且运行得很快。
然后我做了:p = Histogram(res, title="Seconds since previous play")
output_notebook()
show(p)
这是非常缓慢的一点(我总是不得不放弃它)。
有趣的是,当我将一个非常小的数据集加载到我的sqlLite数据库中时,代码似乎可以正常工作 - 尽管它需要20多秒,甚至当我希望它非常快时。在这种情况下,res返回的实际行数仍然是100,它只是包含较少行的数据库。我检查了内存使用情况,但这似乎不是原因。
答案 0 :(得分:0)
好的,我通过反复试验弄明白了。
如果您的输入数据包含任何非常大的异常值,它将大大减慢渲染速度,除非您还指定了分档。
在我的情况下,大部分数据都在0-500范围内,但我有一个是152007.这导致它大大减速。将箱子设置为25使它恢复了自己的活力。
我可能会在寻找答案时访问过的其他一些小组中发布这个内容,因为没有看到它。