Я написал простой код, но, похоже, он не работает должным образом. Когда я нажимаю на кнопку, обновляется только первый субплот. Та же самая история наблюдается, когда я пытаюсь поменять оси местами.
Если я пытаюсь изменить любые другие атрибуты вспомогательных участков (например, изменить значения оси 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