我对Bokeh相当陌生,所以可能还缺少一些东西,但是如果我在一个循环中生成绘图,那么当我尝试在多个绘图上使用Span时,就会遇到一些问题。我正在尝试的是:
titleString = 'Test Plot'
plotVals = [1, 2]
upperLimit = Span(location=6, dimension='width', line_color='red', line_dash='dashed', line_width=1)
lowerLimit = Span(location=-6, dimension='width', line_color='red', line_dash='dashed', line_width=1)
xVals = [0,1,2,3,4]
yVals = [2,4,3,4,2]
for t in enumerate(plotVals):
print(t[1])
imgTitle = 'Span Test ' + str(t[0])
p = figure(title=imgTitle, plot_width=800, plot_height=450, y_range=(-8, 8), x_range=(-4,8))
p.add_layout(upperLimit)
p.add_layout(lowerLimit)
p.circle(xVals,yVals, size=5)
show(p)
reset_output()
第一个图如预期显示,但第二个图失败,并显示以下消息:
ValueError: object to be added already has 'plot' attribute set
我想我在做蠢事。有人能给我指出正确的方向吗?在
渲染器(包括注释,如
Span
)不能在多个绘图之间共享。您需要为每个绘图创建新跨距。在如果您显式地尝试重用在循环外部定义的跨接配置,则可以重写类似于:
相关问题 更多 >
编程相关推荐