bokeh jupyter 中的圆图未显示
circle plot in bokeh jupyter is not displaying
我正在尝试在 jupyter notebook 的 boke 0.12.0 中绘制圆图,如下所示:
s5 = figure(toolbar_location="above", x_axis_type = 'datetime')
s5.circle([1467568091,1467568152,1467568213],[1,1,1])
s5.xaxis.formatter = DatetimeTickFormatter(formats = dict(
seconds=["%d %m %Y %H %M %S"],
minutes=["%d %m %Y %H %M %S"],
hours=["%d %m %Y %H %M %S"],
days=["%d %m %Y %H %M %S"],
months=["%d %m %Y %H %M %S"],
years=["%d %m %Y %H %M %S"],
)
)
s5.xaxis.major_label_orientation = np.pi/4
show(s5)
但是它没有显示任何内容,我得到一个 javascript 错误:
TypeError: j is undefined
inline_js</Bokeh</<["models/formatters/datetime_tick_formatter"]</o</e.prototype.doFormat()
main.min.js:60
inline_js</Bokeh</<["models/axes/axis"]</o</e.prototype._tick_label_extent()
main.min.js:59
inline_js</Bokeh</<["models/axes/axis"]</o</e.prototype._get_size()
main.min.js:59
inline_js</Bokeh</<["core/layout/side_panel"]</T()
main.min.js:56
inline_js</Bokeh</<["models/plots/plot_canvas"]</_</e.prototype.update_constraints()
main.min.js:66
inline_js</Bokeh</<["models/plots/plot_canvas"]</_</e.prototype.render()
main.min.js:66
inline_js</Bokeh</<["core/util/throttle"]</i/i()
main.min.js:57
这里出了什么问题?
如果您要替换 格式字典,您必须注意制作具有所有可能分辨率的格式字典.在这种情况下,您已经遗漏了 "milliseconds"
的条目。以下代码生成一个图:
s5 = figure(toolbar_location="above", x_axis_type = 'datetime')
s5.circle([1467568091,1467568152,1467568213],[1,1,1])
s5.xaxis.formatter = DatetimeTickFormatter(formats = dict(
seconds=["%d %m %Y %H %M %S"],
minutes=["%d %m %Y %H %M %S"],
hours=["%d %m %Y %H %M %S"],
days=["%d %m %Y %H %M %S"],
months=["%d %m %Y %H %M %S"],
years=["%d %m %Y %H %M %S"],
milliseconds=["%d %m %Y %H %M %S"],
))
s5.xaxis.major_label_orientation = np.pi/4
show(s5)
另一种选择是不替换原来的 .formats
字典,而是设置新的 keys/values 来替换任何或所有原始字典。
这绝对是一个太容易犯的错误。如果您想在 project GitHub 上创建一个 issue/PR 来执行以下任何或所有操作:
添加文档支持,明确所有密钥都需要存在,以及那些必需的密钥是什么
添加验证检查以在所有必需的密钥不存在时发出警告
这将对所有 Bokeh 用户有所帮助,不胜感激。我们总是乐于帮助新的贡献者制作 PR,但最好的合作地点可能是 public mailing list.
我正在尝试在 jupyter notebook 的 boke 0.12.0 中绘制圆图,如下所示:
s5 = figure(toolbar_location="above", x_axis_type = 'datetime')
s5.circle([1467568091,1467568152,1467568213],[1,1,1])
s5.xaxis.formatter = DatetimeTickFormatter(formats = dict(
seconds=["%d %m %Y %H %M %S"],
minutes=["%d %m %Y %H %M %S"],
hours=["%d %m %Y %H %M %S"],
days=["%d %m %Y %H %M %S"],
months=["%d %m %Y %H %M %S"],
years=["%d %m %Y %H %M %S"],
)
)
s5.xaxis.major_label_orientation = np.pi/4
show(s5)
但是它没有显示任何内容,我得到一个 javascript 错误:
TypeError: j is undefined
inline_js</Bokeh</<["models/formatters/datetime_tick_formatter"]</o</e.prototype.doFormat()
main.min.js:60
inline_js</Bokeh</<["models/axes/axis"]</o</e.prototype._tick_label_extent()
main.min.js:59
inline_js</Bokeh</<["models/axes/axis"]</o</e.prototype._get_size()
main.min.js:59
inline_js</Bokeh</<["core/layout/side_panel"]</T()
main.min.js:56
inline_js</Bokeh</<["models/plots/plot_canvas"]</_</e.prototype.update_constraints()
main.min.js:66
inline_js</Bokeh</<["models/plots/plot_canvas"]</_</e.prototype.render()
main.min.js:66
inline_js</Bokeh</<["core/util/throttle"]</i/i()
main.min.js:57
这里出了什么问题?
如果您要替换 格式字典,您必须注意制作具有所有可能分辨率的格式字典.在这种情况下,您已经遗漏了 "milliseconds"
的条目。以下代码生成一个图:
s5 = figure(toolbar_location="above", x_axis_type = 'datetime')
s5.circle([1467568091,1467568152,1467568213],[1,1,1])
s5.xaxis.formatter = DatetimeTickFormatter(formats = dict(
seconds=["%d %m %Y %H %M %S"],
minutes=["%d %m %Y %H %M %S"],
hours=["%d %m %Y %H %M %S"],
days=["%d %m %Y %H %M %S"],
months=["%d %m %Y %H %M %S"],
years=["%d %m %Y %H %M %S"],
milliseconds=["%d %m %Y %H %M %S"],
))
s5.xaxis.major_label_orientation = np.pi/4
show(s5)
另一种选择是不替换原来的 .formats
字典,而是设置新的 keys/values 来替换任何或所有原始字典。
这绝对是一个太容易犯的错误。如果您想在 project GitHub 上创建一个 issue/PR 来执行以下任何或所有操作:
添加文档支持,明确所有密钥都需要存在,以及那些必需的密钥是什么
添加验证检查以在所有必需的密钥不存在时发出警告
这将对所有 Bokeh 用户有所帮助,不胜感激。我们总是乐于帮助新的贡献者制作 PR,但最好的合作地点可能是 public mailing list.