инструмент редактирования окна перемещается преувеличено - PullRequest
0 голосов
/ 07 мая 2019

Добавление прямоугольника, основанного на инструменте редактирования прямоугольника, а затем его перемещение приводит к тому, что перемещение прямоугольника будет преувеличено за пределы перемещения мыши.У меня есть два графика одной и той же области, которые связаны между собой, а также ось у проходит от отрицательного числа до нуля, если это имеет значение.Я не уверен, связано ли это, но инструмент перекрестия не связан должным образом на оси x между двумя графиками, либо разница увеличивается с перемещением курсора к большим значениям x.

Я взял многокода из исходного случая, когда он не работал, но ничто не исправило его, включая удаление «stretch_both».

import bokeh
from bokeh.layouts import layout, row, column
from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource
from bokeh.models import Plot      
from bokeh.models import FreehandDrawTool, BoxEditTool
from bokeh.models.tools import HoverTool, WheelZoomTool, BoxZoomTool, UndoTool,RedoTool,ResetTool, SaveTool, PanTool, CrosshairTool, LassoSelectTool

x_range=300
y_range=400

p1=figure(x_range=(0.0, x_range+0.0), y_range=(0.0-y_range,0.0), title="p1",
   toolbar_location=None, tools='', x_axis_location="above")
p2=figure(x_range=p1.x_range, y_range=p1.y_range, title="p2",
   toolbar_location="right", tools='', x_axis_location="above")
p1.y_range.bounds=((0.0-y_range),0.0)

### add shared tools.
wheel_zoom = WheelZoomTool()
pan_tool = PanTool()
crosshair = CrosshairTool()
box_zoom = BoxZoomTool()
reset = ResetTool()

tools = (wheel_zoom, box_zoom,  pan_tool, reset, crosshair)
p1.add_tools(*tools)
p2.add_tools(*tools)

#### draw rectangles code
source_r=ColumnDataSource( {"x":[1],"y":[1],"width":[0.1], "height":[0.1]})
r1=p1.rect('x','y','width','height',source=source_r, fill_alpha=0, line_width=4, line_color="yellow", line_alpha=0.8)
r2=p2.rect('x','y','width','height',source=source_r, fill_alpha=0, line_width=4, line_color="yellow", line_alpha=0.8)
boxtool=BoxEditTool(renderers=[r1, r2])
p1.add_tools(boxtool)
p2.add_tools(boxtool)

seis_row=row(p1,p2)

output_file('eg_issue.html')
show(seis_row)

Ожидаемый результат - поле перемещается туда, куда движется мышь, и не преувеличивает.Также было бы замечательно, если бы перекрестие курсора согласовало два графика.Я могу заставить курсор согласиться, если я добавлю панель инструментов для первого графика, но я не хочу, чтобы у каждого была своя собственная панель инструментов.Это могут быть ошибки, но я подумал, что увижу что-нибудь глупое, спросив здесь сначала.Спасибо.

...