【发布时间】:2020-03-15 23:27:15
【问题描述】:
我正在开发带有散景的东西,我想根据图中箭头的位置和值创建和修改一些图形。线条已完美更新,但箭头有些问题。
问题是当一个按钮在图中创建一个箭头时,它会被切断。当我在layout 中使用row 时,就会发生这种情况
这是一个带有情节图像的最小示例
from bokeh.application import Application
from bokeh.server.server import Server
from bokeh.application.handlers.function import FunctionHandler
from bokeh.layouts import layout,row
from bokeh.models import Arrow, NormalHead,Button
from bokeh.plotting import figure
from functools import partial
class BkApp():
def __init__(self):
self.plot = figure(plot_height=200, plot_width=600, x_range=(-1,5), y_range=(-1500, 1500),tools='save')
self.btn = Button(label="Create Arrow", button_type="success")
self.doc = None
self.Layout = layout()
def Btn_function(APP:BkApp):
APP.plot.add_layout(Arrow(end=NormalHead(size=5, fill_color="#C0392B"),
x_start=5,
y_start=0,
x_end=-1,
y_end=0,
line_width= 3,
line_color = "#C0392B"))
APP.doc.clear()
APP.doc.add_root(APP.Layout)
def make_document(doc, APP:BkApp):
APP.doc = doc
APP.Layout = layout(row(APP.btn,APP.plot))
APP.doc.add_root(APP.Layout)
if __name__ == '__main__':
app = BkApp()
app.btn.on_click(partial(Btn_function, APP=app))
bkapp = {'/': Application(FunctionHandler(partial(make_document, APP=app)))}
server = Server(bkapp)
server.start()
server.io_loop.add_callback(server.show, "/")
server.io_loop.start()
箭头是这样截断的: Cut off Arrow
但是,如果我使用任何工具创建布局,它就可以完美地工作。因此,如果我使用此APP.Layout = layout(APP.btn,APP.plot),该图将显示箭头。
我试图找到一个解决方法,但我不明白为什么在我使用row时会出现此错误
我使用 Python 3.6 和散景 2.0.0
更新:显然这只发生在我把按钮放在情节上时。如果按钮在右侧,一切正常。
【问题讨论】: