Ранее в посте Plotly : области. Делаем два графика мы сделали два графика.
Подписи для каждого из них мы задавали прямо при разбиении областей:
fig = make_subplots(rows=2, cols=1 , subplot_titles = ('Upper', 'Lower') )
И если нам требуется изменить, скажем, подписи осей или всей диаграммы, то никаких проблем не возникнет - это вызывается так:
fig.update_yaxes( title = 'My second Y axis' , row =2 , col =1 )
fig.update_layout( title = 'My New Chart' )
Однако с подписями областей такой трюк не пройдет. Для начала, давайте поймем где же они хранятся. Это можно сделать печатью содержимого разметки фигуры, т.е. свойства layout:
Однако Plotly предоставляет и иной способ ее поменять - по свойству элемента.
Если посмотреть описание по документации plotly.graph_objects.Figure :
то, при том что там как бы есть парамеры row/col, все равно ничего на выйдет - все указанные методы и попытки поменять подпись таким образом, не работают:
# попытка 1 - не работает
fig.update_annotations( patch= dict(text = 'Second upper test ') , row =1 , col =1)
# попытка 2 - не работает
fig.update_annotations( text = 'Second upper test ' , row =1 , col =1)
# попытка 3 - не работает
fig.update_annotations( dict(text = 'Second upper test ') , row =1 , col =1)
Однако удивительно, что работает ссылка на элемент через селектор - т.е. ему надо указать словарь со свойствами желательного элемента. Как можно видеть наиболее яркое, кроме ключей x и y, у нас только свойство text. Так и попробуем:
fig.update_annotations( text = 'Second upper test' , selector = dict(text= 'Test Upper') )
И вуаля! - это работает:
Таким образом чтобы изменить подписи областей у нас два варианта: либо явно ссылаемся на элемент списка, либо используем селектор, задавая предыдущий текст.
No comments:
Post a Comment