Не все сюжетные сюжеты обновляются после события ipywidget - PullRequest
0 голосов
/ 03 марта 2020

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

Если я пытаюсь изменить любые другие атрибуты вспомогательных участков (например, изменить значения оси x или y), это работает правильно. Также я заметил, что есть проблемы только тогда, когда одна из осей графика представляет собой массив строк, а другая - массив цифр c. Когда обе оси имеют одинаковый тип - все в порядке, и замена осей или изменение их ориентации работает так, как я хочу.

Также, когда я пытаюсь загрузить график, используя «download plot as png», возникает ошибка (показано на последнее изображение).

Любая помощь высоко ценится.

import ipywidgets as widgets
from plotly.subplots import make_subplots

subplot = make_subplots(rows=1, cols=3)
subplot.add_bar(x=[1,2,3], y=['a', 'b', 'c'], row=1, col=1, name='1', orientation='v')
subplot.add_bar(x=[1,2,3], y=['a', 'b', 'c'], row=1, col=2, name='2', orientation='v')
subplot.add_bar(x=[1,2,3], y=['a', 'b', 'c'], row=1, col=3, name='3', orientation='v')

def change_orientation(obj):
    if obj.new == True:
        for item in fig_widg.data:
            item.orientation = 'h'
    else:
        for item in fig_widg.data:
            item.orientation = 'v'

is_horizontal = widgets.Checkbox(description='Horizontal')
is_horizontal.observe(change_orientation, 'value')

fig_widg = go.FigureWidget(subplot)
box = widgets.VBox([is_horizontal, fig_widg])
box
...