python - 用于数据块中散景的循环
问题描述
嗨,我想循环 for 循环,例如。下面的几次代码可以在一个数据块单元格中获得几次相同的图形:
我导入了库:
from bokeh.plotting import figure
from bokeh.embed import components, file_html
from bokeh.resources import CDN
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
for i in range(5):
p = figure(title='test', x_axis_label = 'x values', y_axis_label='y values')
p.line(x,y, line_width =2)
html = file_html(p,CDN,'plot')
displayHTML(html)
我试图使用 for 循环,但我仍然在单元格中只获得一个图形。
还尝试了不同的模块,比如这里:
from bokeh.io import output_file, show
from bokeh.plotting import figure
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
for i in range(5):
p = figure(title='test', x_axis_label = 'x values')
p.line(x,y, line_width =2)
output_file("line"+str(i)+".html")
show(p)
但是在这里我没有得到任何结果,没有绘制任何内容。你能告诉我为什么吗?
也试过这个:
d={}
for i in range(5):
p = figure(title='test', x_axis_label = 'x values')
p.line(x,y, line_width =2)
d["html{0}".format(i)]=file_html(p,CDN, 'plot' + str(i))
for j in d:
displayHTML(j)
看起来,在数据块中使用散景,每个单元格只能显示一个图形。有谁知道是不是真的?
你能帮我用for循环的语法来多次获取它吗?
解决方案
从其他答案看来,使用 Bokeh 不完全支持的旧笔记本版本的 Databricks 可能存在问题。如果标准output_notebook
不起作用,但displayHTML
事情确实如此,那么我会说你最好的选择是收集你想在column
布局中显示的图,然后在最后一次调用一次显示它们show
:
from bokeh.layouts import column
plots = []
for i in range(5):
p = figure(...)
p.line(...)
plots.append(p)
layout = column(*plots)
# only use this way for databricks
html = file_html(layout, CDN, 'plot')
displayHTML(html)
推荐阅读
- javascript - 使用 Javascript 在 Chrome 中打开一个新的选项卡式窗口
- android - 绘制数据前的 Android 错误:Invalid Region.Op - 只允许 INTERSECT 和 DIFFERENCE
- python - Pandas DataFrames If else 条件包含破折号的多列
- javascript - 访问框架 DOM chrome 扩展
- wpf - WPF组合框排序,但最初没有选择条目?
- android - 为 DialogFragment 上的导航栏设置颜色
- r - GenSA 和 SA 为背包问题提供无意义的输出
- python - Django 数据库迁移随着“元”类的添加而停止
- flutter - 如何在颤动中检查用户会话并通过路由?
- javascript - 基于文档查询选择器定义 VAR 不起作用