После долгих хлопот я наконец-то смог заставить инструмент рисования точек Боке работать только для того, чтобы столкнуться с другой проблемой: работой с данными, сгенерированными этим инструментом. Код ниже генерирует интерактивный график, а размещение / перемещение точек обновляет таблицу в режиме реального времени. Однако я не могу понять, как извлечь данные из этой таблицы, например, в CSV-файл. Я пробовал несколько стратегий, таких как Excel >> Data >> From Web >> table и использование библиотеки bs4, но не повезло. Я ничего не знаю о html, но при открытии html-файла, сгенерированного после использования инструмента рисования точек, данные для начальных точек и точки, расположенные позже с помощью инструмента, оказываются в разных местах. Это может быть причиной проблемы. По сути, мне просто нужно получить данные из таблицы html в формате, который я могу легко использовать в python. Спасибо за любую помощь, которую вы можете предоставить.
ИСТОЧНИК КОД (python3.6.2)
from datetime import date
import time
from random import randint
from bokeh.io import output_file, show
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource, PointDrawTool
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
from bokeh.plotting import figure
output_file("pointDrawResults.html")
data = { "x": [5, 2, 8], "y": [5, 7, 8]}
src = ColumnDataSource(data)
columns = [
TableColumn(field = "x", title = "xs"),
TableColumn(field = "y", title = "ys"),
]
data_table = DataTable(source = src, columns = columns, width = 400, height = 280)
plot = figure(x_range = (0, 10), y_range = (0, 10), width = 400, height = 400, title = "Point Draw Tool")
renderer = plot.circle("x", "y", size = 15, fill_color = "blue", fill_alpha = 0.8, source = src)
draw_tool = PointDrawTool(renderers = [renderer], empty_value = 1)
plot.add_tools(draw_tool)
plot.toolbar.active_drag = draw_tool
show(widgetbox(data_table))
show(plot)