График боке, начинающийся или заканчивающийся значениями NaN по оси Y, не отображается

#python #bokeh #bokehjs

#python #боке #bokehjs

Вопрос:

Я пытаюсь получить график, в котором заполнены все значения по оси x, но который начинается со значений по оси y, которые равны NaN. Похоже, что график начнется с первого реального значения по оси y. Вот пример:

 from bokeh.plotting import figure, output_file, show

output_file("line.html")
p = figure(plot_width=400, plot_height=400)

# add a line renderer with a NaN
n = float('nan')
p.line(
    [1, 2, 3, 4, 5], # x-axis
    [n, n, 7, 2, 4], # y-axis
    line_width=2
)
show(p)
 

Это результат:
График боке

Как вы можете видеть, первые 2 элемента массива по оси x не отображаются. Я надеялся найти способ заставить график боке отображать все значения или обходной путь с тем же эффектом.

Ответ №1:

Вы можете явно задать начало (или конец) оси x (или y) графика. Вот так:

 from bokeh.plotting import figure, output_file, show

output_file("line.html")
p = figure(plot_width=400, plot_height=400)

# add a line renderer with a NaN
n = float('nan')
x_values = [1, 2, 3, 4, 5]  # x-axis
y_values = [n, n, 7, 2, 4]  # y-axis
p.line(x=x_values, y=y_values, line_width=2)

# of course in real life it'd make sense to do max and min of x and y,
# but this is all we need for your specific example.
p.x_range.start = min(x_values)

show(p)