28 July 2020

Plotly : подписи у графика и осей

Рассмотрим теперь как подписать оси и график.
Для начала выведем простой график:

fig = go.Figure()
trc2 = go.Scatter(
    x = x, y = y,
    name = 'Scatter sample',
    line = dict(color= 'green', dash='dot'),
    marker_symbol ='diamond-open',
    mode ='markers+lines'
)
fig.add_trace ( trc2 )


В результате получится зеленый пунктирный график с алмазами в качестве маркеров.
А теперь посмотрим что из себя представляет объект холста:

print(fig)

Поскольку если мы просто напишем fig то Юпитер просто выведет еще раз график. Значит надо воспользоваться оператором print.
Вот что у нас получится:


Как можно видеть в словаре для холста есть два основных ключа: data и layout. Т.е. данные и оформление. В данных мы можем видеть все свойства заданной точечной диграммы в том числе и данные по осям Х и Y.
А вот второй ключ для оформления - layout - что-то только  говорит о шаблоне но не более.
Если его тоже вывести вот так:

print(fig.layout.template) 

То получим огромный список форматирования. В том числе будет в конце и такое:



И это примерно то, что нам нужно.
Задать подписи в plotly можно вот так - т.е. обращаясь по словарю:

# подписать ось X - можно через обращение по ключу
fig['layout']['xaxis'].update( title = 'My X axis' )

# подписать ось Y - можно и без скобок
fig.layout.yaxis.update( title = 'My Y axis' )

# подписать весь график
fig['layout'].update( title = 'My Chart' )


Т.е. мы выбираем элемент - от холста идет оформление и далее нужная ось или целиком оформление. Далее к ней применяется метод update который и обнавляет значение по ключу title.
Вот что теперь в оформлении:


А вот как стал выглядеть график:


Аналогичных подписей можно добиться и адресными методами:

fig.update_xaxes( title = 'My new X axis' )
fig.update_yaxes( title = 'My new Y axis' )
fig.update_layout( title = 'My New Chart' )


Что даст следующее:


В результате мы подпишем и сам график и оси.

No comments:

Post a Comment