Код python ниже отображает x, y и позволяет редактировать / добавлять новые точки с помощью PointDrawTool в Bokeh. При добавлении новых точек я хотел бы соединить все точки линией, основанной на значениях x. В настоящее время новые точки добавляются в конце, и линия соединяется от последней точки от исходных данных до новых. Каков оптимальный способ прибавления исходных данных после добавления новых точек и перерисовки линии? В моих реальных данных размер составляет от сотен до нескольких тысяч точек.
Кроме того, есть способ, позволяющий вставить новую ячейку ниже выбранной ячейки в таблице и добавить новую точку данных, а затем обновить рисунок. Спасибо.
from bokeh.plotting import Column, ColumnDataSource, figure, output_file, show
from bokeh.models import DataTable, TableColumn, PointDrawTool, ColumnDataSource
x=[1, 2, 3, 4, 5, 6, 7, 8]
y=[1,2,1,2,1,2,3,1]
data = {'x': x,
'y': y,
'color': ['blue']*len(x)}
source = ColumnDataSource(data=data)
p = figure(plot_width=400, plot_height=400)
p.line('x', 'y', line_width=2, source=source)
xyp = p.scatter(x='x', y='y', source=source, color='color', size=10)
columns = [TableColumn(field="x", title="x"),
TableColumn(field="y", title="y"),
TableColumn(field='color', title='color')]
table = DataTable(source=source, columns=columns, editable=True, height=200)
draw_tool = PointDrawTool(renderers=[xyp], empty_value='black')
p.add_tools(draw_tool)
p.toolbar.active_tap = draw_tool
show(Column(p, table))