Совместное использование диапазонов осей - Bokeh - PullRequest
1 голос
/ 09 марта 2020

Я хочу поделиться диапазонами моего X-axis, чтобы при перемещении по всем графикам все они двигались вместе.

Я пытаюсь следовать примеру из Направляющей линии . Но поскольку я строю их по-другому, это не позволяет мне разделить диапазон.

p = [figure(title="Title", 
            x_axis_label='Time (secs)', 
            y_axis_label='Voltage (V)', 
            tools = TOOLS, 
            x_range=(0, 500), 
            y_range=(0, 1000)),

    figure(title="Title_1", 
           x_axis_label='Time (secs)', 
           y_axis_label='Voltage (V)',  
           tools = TOOLS,
           x_range=p[0].x_range, 
           y_range=(0, 500))]

Я получаю следующее:

   x_range=p[0].x_range,

IndexError: list index out of range

Что происходит?

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Вы определили список, в котором один из элементов ссылается на свой первый индекс. Вы не можете ссылаться на индекс элемента в определении.

, например:

class Person:
    def __init__(self, name):
        self.name = name

list1 = ['first', Person(list1[0])]

и в своем коде фрагмента:

p = [figure(title="Title", 
            x_axis_label='Time (secs)', 
            y_axis_label='Voltage (V)', 
            tools = TOOLS, 
            x_range=(0, 500), 
            y_range=(0, 1000)),

    figure(title="Title_1", 
           x_axis_label='Time (secs)', 
           y_axis_label='Voltage (V)',  
           tools = TOOLS,
           x_range=p[0].x_range, # Here is problem you the p[0] is refering 
                                 #  to index 0 on definition of the list 
           y_range=(0, 500))]

Вы можете сделайте что-то вроде ниже для цели, которую вы получили:

p = [
    figure(
        title="Title", 
        x_axis_label='Time (secs)', 
        y_axis_label='Voltage (V)', 
        tools = TOOLS, 
        x_range=(0, 500), 
        y_range=(0, 1000)
    )
]
p.append(
    figure(
       title="Title_1", 
       x_axis_label='Time (secs)', 
       y_axis_label='Voltage (V)',  
       tools = TOOLS,
       x_range=p[0].x_range,
       y_range=(0, 500)
    )
)
0 голосов
/ 09 марта 2020

Вы можете изменить диапазон после создания, а не во время создания:

p[1].x_range = p[0].x_range
...