我有一本包含散景图列表的字典。 我打电话给这些并在布局上放置2个图并将它们放入3或4个标签中。
当我打开文档时,每个标签看起来只有一个图,但你可以看出它背后有第二个图,有时你可以看到第二个图的一小部分。
当我只是show(layout)
它看起来很好时,只有当我尝试在选项卡中使布局无法正确呈现时才会这样。
我已经重新设置了如何设置它的问题。下面有点长,但我想有一个完整的例子。第一部分是创建所有的情节。请注意需要更改的目录路径。
from bokeh.charts import Bar, output_file, show, BoxPlot, Histogram, Scatter
from bokeh.sampledata.autompg import autompg as df
from bokeh.models.widgets import Tabs, Panel
from bokeh.layouts import layout
import os
directory = r'/Users/user/bokehApp'
bar = []
p = Bar(df, 'cyl', values='mpg', title="Total MPG by CYL")
bar.append(p)
p = Bar(df, label='yr', values='mpg', agg='mean',
title="Average MPG by YR")
bar.append(p)
p = Bar(df, 'yr', values='displ',
title="Total DISPL by YR", bar_width=0.4)
bar.append(p)
p = Bar(df, 'yr', values='displ',
title="Total DISPL by YR", color="wheat")
bar.append(p)
box = []
p = BoxPlot(df, values='mpg', label='cyl',
title="MPG Summary (grouped by CYL)")
box.append(p)
p = BoxPlot(df, values='mpg', label=['cyl', 'origin'],
title="MPG Summary (grouped by CYL, ORIGIN)")
box.append(p)
p = BoxPlot(df, values='mpg', label='cyl', color='#00cccc',
title="MPG Summary (grouped by CYL)")
box.append(p)
p = BoxPlot(df, values='mpg', label='cyl', color='cyl',
title="MPG Summary (grouped and shaded by CYL)")
box.append(p)
hist = []
p = Histogram(df['mpg'], title="MPG Distribution")
hist.append(p)
p = Histogram(df, 'hp', title="HP Distributioan")
hist.append(p)
p = Histogram(df, values='displ', title="DISPL Distribution")
hist.append(p)
p = Histogram(df, values='mpg', bins=50,
title="MPG Distribution (50 bins)")
hist.append(p)
scat = []
p = Scatter(df, x='mpg', y='hp', title="HP vs MPG",
xlabel="Miles Per Gallon", ylabel="Horsepower")
scat.append(p)
以上是我从高级图表页面获取的所有图表,下面是问题。
dataDict = {'Bar': bar, 'Box': box, 'Hist': hist, 'Scat': scat}
plots = ['Bar', 'Box', 'Hist']
for plt in plots:
plotFig = dataDict[plt]
tabList = [plotFig[0:2],plotFig[2:4]]
tabTitle =['tab1', 'tab2']
panel = []
output_file(os.path.join(directory, plt+'.html'), title = plt + 'plots', autosave = False, mode = 'cdn', root_dir = None)
for tab, title in zip (tabList, tabTitle):
l = layout(children = [
tab], sizing_mode = 'scale_width')
t = Panel(child = l, title = title)
panel.append(t)
tabs = Tabs(tabs = panel)
show(tabs)
由于
答案 0 :(得分:1)
在您的描述中并非100%确定您的意思"在#34;之上在这种情况下。但是Bokeh保留了一份隐含的"当前文件"积累到。如果你不想要这个(例如因为你在循环中创建和保存不同的图),那么你可以:
自行管理文档并向其添加内容,请参阅例如https://github.com/bokeh/bokeh/blob/master/examples/models/glyph1.py
尝试在reset_output
:
show
from bokeh.io import reset_output
for p in plots:
reset_output()
# stuff, create plots and put them in Tabs
show(tabs)
答案 1 :(得分:0)
当我将上述sizing_mode = 'scale_width'
更改为sizing_mode = 'fixed'
时,它会正确呈现。