Как я могу обновить фигуру x_range, если это stringList? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу изменить ось х на боке.

xrange = ["Marseille", "Lyon"]

plot = figure(x_range=xrange)

plotSource = ColumnDataSource(data=dict(x=xrange, y=[1, 2]))

bars = VBar(x="x", top="y", width=0.1, fill_color="black")

plot.add_glyph(plotSource, bars)

handler = show(plot, notebook_handle=True)

plot.x_range = ["Marseille", "Paris"]  # how can i do that

push_notebook(handle=handler)
ValueError: expected an instance of type Range, got ['Marseille', 'Paris'] of type list

Я не могу создать диапазон из списка, как я могу это сделать?

1 Ответ

0 голосов
/ 16 апреля 2019

Вы уже установили x_range в конструкторе фигур и пытаетесь установить его дважды позже.Но тогда вы должны использовать plot.x_range.factors = ["Marseille", "Paris"]:

from bokeh.plotting import show, figure
from bokeh.models import ColumnDataSource, VBar

xrange = ["Marseille", "Lyon"]
plot = figure(x_range = xrange)
plotSource = ColumnDataSource(data = dict(x = xrange, y = [1, 2]))
bars = VBar(x = "x", top = "y", width = 0.1, fill_color = "black")
plot.add_glyph(plotSource, bars)
handler = show(plot, notebook_handle = True)

plot.x_range.factors = ["Marseille", "Paris"]

show(plot)

Или, возможно, вам нужен более простой код (используя source):

from bokeh.plotting import show, figure
from bokeh.models import ColumnDataSource

xrange = ["Marseille", "Lyon"]
p = figure(x_range = xrange)
source = ColumnDataSource(data = dict(x = xrange, y = [1, 2]))
bars = p.vbar(x = "x", top = "y", source = source, width = 0.1, fill_color = "black")

show(p)
...