Соотношение сторон для боке box_zoom - PullRequest
0 голосов
/ 07 мая 2020

Я рисую карту в боке, к которой я добавил инструменты на панели инструментов. Однако у меня возникают проблемы с box_zoom, так как он позволяет увеличивать масштаб прямоугольника angular, который искажает карту. Как мне исправить соотношение сторон box_zoom?

Я нашел эту ветку, но не понимаю, как ее реализовать: https://discourse.bokeh.org/t/keep-a-fixed-aspect-ratio-when-zooming-with-box-tool/3580/3

Мой код ниже:

# Create figure object.
p = figure(title = '2000-2020',
           title_location = 'above',
           plot_height = 400 ,
           plot_width = 400, 
           toolbar_location = 'above',
           tools = 'pan, wheel_zoom, box_zoom, reset',
           aspect_scale=0.05)
# Change font size on title

p.title.text_font_size = '12pt'
p.axis.visible = False
p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
# Add patch renderer to figure.
neighbourhoods = p.patches('xs','ys', source = geosource,
                   fill_color = {'field' :'trees0020',
                                 'transform' : color_mapper},
                   line_color = 'black', 
                   line_width = 0.75, 
                   fill_alpha = 1)
# Create hover tool
p.add_tools(HoverTool(renderers = [neighbourhoods],
                      tooltips = [('Neighbourhood','@district'),
                                 ('Trees','@trees0020')]))
p.add_layout(color_bar, 'below')
p.toolbar.logo = None
# Remove the grey box around the plot
p.outline_line_color = None

show(p)

1 Ответ

1 голос
/ 07 мая 2020

Точно так же, как вы уже сделали это с HoverTool - удалите box_zoom из аргумента tools и просто вызовите

from bokeh.models import BoxZoomTool

p.add_tools(BoxZoomTool(match_aspect=True))
...