Построение локальных изображений в приложении Bokeh

Я пытаюсь построить png-образ, используя ImageURLкласс, который локально хранится в ./staticкаталоге приложений . В приведенном ниже коде при использовании веб-url для одного и того же изображения он работает так, как ожидалось, но все попытки создания локального url не выполняются. Кроме того, при выполнении по существу одного и того же кода, выводящего в файл, все экземпляры url работают правильно.

bokeh serve --show

import os
import numpy as np
from bokeh.plotting import curdoc
from bokeh.models import ColumnDataSource, Range1d, Plot
from bokeh.models.glyphs import ImageURL

url= "http://pngimg.com/uploads/palm_tree/palm_tree_PNG2504.png", # works
# url= "static/palm.png", # 404 GET /static/palm.png
# url=os.path.join(os.path.dirname(__file__), 'palm.png'), # 404 GET /Volumes/Home/Code/scratch/palm.png
# url='file://'+os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
N = 1
source = ColumnDataSource(dict(
    url = [url]*N,
    x1  = np.linspace(  1, 1, N),
    y1  = np.linspace(  1, 1, N),
    w1  = np.linspace( 253,  253, N),
    h1  = np.linspace( 409,  409, N),
))
p = Plot(
    title=None, 
    x_range=Range1d(start=0, end=500), 
    y_range=Range1d(start=0, end=500), 
    plot_width=500, 
    plot_height=500,
    h_symmetry=False, 
    v_symmetry=False, 
    min_border=0, 
    toolbar_location=None
)
p.add_glyph(source, ImageURL(url="url", x="x1", y="y1", w="w1", h="h1", anchor="bottom_left"))
curdoc().add_root(p)

python main.py

from bokeh.plotting import show, output_file
output_file("tbe.html")

import os
import numpy as np
from bokeh.plotting import curdoc
from bokeh.models import ColumnDataSource, Range1d, Plot
from bokeh.models.glyphs import ImageURL
# all work
url = "http://pngimg.com/uploads/palm_tree/palm_tree_PNG2504.png", 
url = "static/palm.png",
url = os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
url ='file://'+os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
N = 1
source = ColumnDataSource(dict(
    url = [url]*N,
    x1  = np.linspace(  1, 1, N),
    y1  = np.linspace(  1, 1, N),
    w1  = np.linspace( 253,  253, N),
    h1  = np.linspace( 409,  409, N),
))
p = Plot(
    title=None, 
    x_range=Range1d(start=0, end=500), 
    y_range=Range1d(start=0, end=500), 
    plot_width=500, 
    plot_height=500,
    h_symmetry=False, 
    v_symmetry=False, 
    min_border=0, 
    toolbar_location=None
)
p.add_glyph(source, ImageURL(url="url", x="x1", y="y1", w="w1", h="h1", anchor="bottom_left"))
show(p)

python,bokeh,

1

Ответов: 0

Построение локальных изображений в приложении Bokeh

Я пытаюсь построить png-образ, используя ImageURLкласс, который локально хранится в ./staticкаталоге приложений . В приведенном ниже коде при использовании веб-url для одного и того же изображения он работает так, как ожидалось, но все попытки создания локального url не выполняются. Кроме того, при выполнении по существу одного и того же кода, выводящего в файл, все экземпляры url работают правильно.

bokeh serve --show

import os
import numpy as np
from bokeh.plotting import curdoc
from bokeh.models import ColumnDataSource, Range1d, Plot
from bokeh.models.glyphs import ImageURL

url= "http://pngimg.com/uploads/palm_tree/palm_tree_PNG2504.png", # works
# url= "static/palm.png", # 404 GET /static/palm.png
# url=os.path.join(os.path.dirname(__file__), 'palm.png'), # 404 GET /Volumes/Home/Code/scratch/palm.png
# url='file://'+os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
N = 1
source = ColumnDataSource(dict(
    url = [url]*N,
    x1  = np.linspace(  1, 1, N),
    y1  = np.linspace(  1, 1, N),
    w1  = np.linspace( 253,  253, N),
    h1  = np.linspace( 409,  409, N),
))
p = Plot(
    title=None, 
    x_range=Range1d(start=0, end=500), 
    y_range=Range1d(start=0, end=500), 
    plot_width=500, 
    plot_height=500,
    h_symmetry=False, 
    v_symmetry=False, 
    min_border=0, 
    toolbar_location=None
)
p.add_glyph(source, ImageURL(url="url", x="x1", y="y1", w="w1", h="h1", anchor="bottom_left"))
curdoc().add_root(p)

python main.py

from bokeh.plotting import show, output_file
output_file("tbe.html")

import os
import numpy as np
from bokeh.plotting import curdoc
from bokeh.models import ColumnDataSource, Range1d, Plot
from bokeh.models.glyphs import ImageURL
# all work
url = "http://pngimg.com/uploads/palm_tree/palm_tree_PNG2504.png", 
url = "static/palm.png",
url = os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
url ='file://'+os.path.join(os.path.dirname(__file__), 'static', 'palm.png'),
N = 1
source = ColumnDataSource(dict(
    url = [url]*N,
    x1  = np.linspace(  1, 1, N),
    y1  = np.linspace(  1, 1, N),
    w1  = np.linspace( 253,  253, N),
    h1  = np.linspace( 409,  409, N),
))
p = Plot(
    title=None, 
    x_range=Range1d(start=0, end=500), 
    y_range=Range1d(start=0, end=500), 
    plot_width=500, 
    plot_height=500,
    h_symmetry=False, 
    v_symmetry=False, 
    min_border=0, 
    toolbar_location=None
)
p.add_glyph(source, ImageURL(url="url", x="x1", y="y1", w="w1", h="h1", anchor="bottom_left"))
show(p)
01питон, бок,
Похожие вопросы