Как указать заголовок легенды в plotly
? У меня есть столбчатая диаграмма с накоплением, которая отображает разные длительности, такие как 0-10, 11-20. Я хочу, чтобы в заголовке легенды было написано «Продолжительность».
Название легенды в сюжете
Ответы (2)
Самый простой способ указать заголовок легенды — установить его с помощью ggplot
и plotly
прочитать его из соответствующего объекта:
library( plotly )
gg <- ggplot( mtcars, aes( x=mpg, y=wt, color=factor(vs) ) ) +
geom_point() + labs( color = "MyTitle" )
ggplotly( gg )
Однако проблема в том, что plotly
преобразует заголовок легенды в аннотацию, которая в процессе отсоединяется от легенды. В моем браузере он также перекрывается с меню plotly
в правом верхнем углу:
Чтобы обойти эту проблему, вы можете вообще удалить заголовок легенды из объекта ggplot
и добавить аннотацию вручную:
gg <- ggplot( mtcars, aes( x=mpg, y=wt, color=factor(vs) ) ) +
geom_point() + theme( legend.title = element_blank() )
ggplotly( gg ) %>%
add_annotations( text="MyTitle", xref="paper", yref="paper",
x=1.02, xanchor="left",
y=0.8, yanchor="bottom", # Same y as legend below
legendtitle=TRUE, showarrow=FALSE ) %>%
layout( legend=list(y=0.8, yanchor="top" ) )
Обратите внимание, что одна и та же координата y
используется как для заголовка, так и для легенды, но первая привязывается внизу, а последняя — вверху. Это предотвращает «отключение» заголовка от легенды. Вот как выглядит окончательный результат:
Если вы имеете в виду нечто подобное, где легенда называется, а названия подсюжетов настраиваются...
Создайте след. В этой трассировке используйте атрибут annotations
, чтобы добавить имя в легенду. Я могу добавлять фрагменты текста на свой график, где захочу, если я укажу значение x
, значение y
и установлю xref = 'paper'
и yref = 'paper'
.
Вот руководство о том, как аннотации можно использовать в ваших интересах: Создание индивидуального заголовка по осям X и Y.
Вы можете узнать больше об аннотациях. Они полезны!