Проблемы с отображением панели инструментов Bokeh - PullRequest
0 голосов
/ 08 июня 2018

Я новичок в Bokeh и Flask python в целом, но мне удалось создать график, а затем вывести его в браузер через флягу.Единственная проблема заключается в том, что я не получаю «Панель инструментов Bokeh» рядом с моим графиком.

Мой код выглядит так

from flask import Flask, render_template, request
import pandas as pd
import csv
from bokeh.plotting import figure
from bokeh.io import show
from bokeh.embed import components
from bokeh.models import Range1d
from bokeh.resources import CDN

app = Flask(__name__)


# Create the main plot
    def create_figure():
    xvals = []
    yvals = []
    with open('test.csv') as csvfile:
        readCSV = csv.reader(csvfile, delimiter=',')

        for row in readCSV:
            xvalue = row[0]
            yvalue = row[1]
            xvals.append(xvalue)
            yvals.append(yvalue)

    p = figure(plot_width=400, plot_height=400, x_range=(0, 20))
    p.y_range = Range1d(0, 15)
    p.circle(xvals, yvals, size=10)
    return p
# Index page
@app.route('/')
def index():
    plot = create_figure()
    script, div = components(plot)
    cdn_js = CDN.js_files[0]
    cdn_css = CDN.css_files[0]
    return render_template("index.html", script=script, div=div, 
    cdn_js=cdn_js, 
    cdn_css=cdn_css)
    # With debug=True, Flask server will auto-reload
    # when there are code changes
    if __name__ == '__main__':
        app.run(port=5000, debug=True)

, а мой код index.html выглядит так:

<html>
<head>
<link href={{ cdn_css|safe }} type="text/css" />
<script type="text/javascript" src={{ cdn_js|safe }}></script>
</head>
<body>
<H1>First</H1>

{{ script|safe }}
{{ div|safe }}

</body>
</html>

Я что-то упустил?Когда я выводю график в файл output_file, я получаю панель инструментов.Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 21 июня 2018

У меня была такая же проблема.Я не могу объяснить причину, но этот пример работает: realpython github

0 голосов
/ 08 июня 2018

Скорее всего, это проблема https://github.com/bokeh/bokeh/issues/7497.Доступные обходные пути, , как я разместил в теме , следующие:

Существует два варианта.Если вы хотите сохранить панель инструментов как часть графика, то вам придется создать ToolbarPanel вручную и добавить его с add_layout() к графику.В качестве альтернативы вы можете отделить панель инструментов от графика, как элемент большего макета, как это происходит с графиками сетки.В обоих случаях ключ должен установить plot.toolbar_location = None, чтобы отключить создание значения по умолчанию ToolbarPanel.

Пожалуйста, следуйте этой проблеме, чтобы вы могли быть в курсе будущих событий.

...