Есть ли способ заставить боке автоматически регулировать видимость меток при изменении уровня масштабирования, чтобы поддерживать постоянное количество меток в виде галочек?
views.py:
Код: Выделить всё
# -*- coding: utf-8 -*-
from django.shortcuts import render
from bokeh.plotting import *
from bokeh.resources import CDN
from bokeh.embed import components
from bokeh.charts import Bar
from bokeh.models import Range1d
from collections import OrderedDict
import datetime
def plot_1_bar(data, y, y_lab, title, xlab, ylab, yrange, palette):
x0_list_str = []
y_list = []
# x_axis_type == "datetime":
i_x = 'x1'
i_y = y[0]
for idx, val in enumerate(data):
x0_list_str.append(val[i_x].strftime("%Y-%m-%d %H h"))
y_list.append(val[i_y])
data_x = x0_list_str
data_y = OrderedDict()
data_y[y_lab[0]] = y_list
plot = Bar(data_y, data_x, title=title, xlabel=xlab,
ylabel=ylab, stacked=True, continuous_range=yrange,
palette=palette, legend=True, height=400)
return components(plot, CDN)
def plot1(request):
script_bokeh = ""
div_bokeh = ""
data = []
data.append({'x1': datetime.datetime(2015,1,1,8,0,0,0),'y1': 0})
data.append({'x1': datetime.datetime(2015,1,1,9,0,0,0),'y1': 0})
data.append({'x1': datetime.datetime(2015,1,1,10,0,0,0),'y1': 0})
data.append({'x1': datetime.datetime(2015,1,1,11,0,0,0),'y1': 0})
data.append({'x1': datetime.datetime(2015,1,1,12,0,0,0),'y1':8})
data.append({'x1': datetime.datetime(2015,1,1,13,0,0,0),'y1':12})
data.append({'x1': datetime.datetime(2015,1,1,14,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,1,15,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,1,16,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,1,17,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,1,18,0,0,0),'y1':2})
data.append({'x1': datetime.datetime(2015,1,1,19,0,0,0),'y1':6})
data.append({'x1': datetime.datetime(2015,1,1,20,0,0,0),'y1':4})
data.append({'x1': datetime.datetime(2015,1,1,21,0,0,0),'y1':22})
data.append({'x1': datetime.datetime(2015,1,1,22,0,0,0),'y1':36})
data.append({'x1': datetime.datetime(2015,1,1,23,0,0,0),'y1':32})
data.append({'x1': datetime.datetime(2015,1,2,0,0,0,0),'y1':21})
data.append({'x1': datetime.datetime(2015,1,2,1,0,0,0),'y1':15})
data.append({'x1': datetime.datetime(2015,1,2,2,0,0,0),'y1':4})
data.append({'x1': datetime.datetime(2015,1,2,3,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,4,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,5,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,6,0,0,0),'y1':45})
data.append({'x1': datetime.datetime(2015,1,2,7,0,0,0),'y1':47})
data.append({'x1': datetime.datetime(2015,1,2,8,0,0,0),'y1':52})
data.append({'x1': datetime.datetime(2015,1,2,9,0,0,0),'y1':44})
data.append({'x1': datetime.datetime(2015,1,2,10,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,11,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,12,0,0,0),'y1':0})
data.append({'x1': datetime.datetime(2015,1,2,13,0,0,0),'y1':0})
script_bokeh, div_bokeh = plot_1_bar(data,
['y1'],
['y legend label'],
"",
'x label',
'y label',
Range1d(0, 70),
['red'])
return render(request,
'tests/plot1.html',
{'script_bokeh': script_bokeh,
'div_bokeh': div_bokeh})
Код: Выделить всё
bokeh bar plot
Bokeh bar plot
{{div_bokeh|safe}}{{script_bokeh|safe}}


Подробнее здесь: https://stackoverflow.com/questions/321 ... s-the-zoom