指定图例标题的最简单方法是通过它设置ggplot并plotly从相应的对象中读取它:
library( plotly )
gg <- ggplot( mtcars, aes( x=mpg, y=wt, color=factor(vs) ) ) +
geom_point() + labs( color = "MyTitle" )
ggplotly( gg )
Run Code Online (Sandbox Code Playgroud)
但是,问题是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" ) )
Run Code Online (Sandbox Code Playgroud)
请注意,y标题和图例使用相同的坐标,但前者锚定在底部,而后者锚定在顶部.这样可以防止标题与图例"断开连接".以下是最终结果:
如果您指的是类似这样的图例标题,并且子图的标题是自定义的......
创建痕迹。在该跟踪中,使用该annotations属性向图例添加名称。x如果我指定一个值、一个y值并设置xref = 'paper'和,我就可以在图表中的任意位置添加文本片段yref = 'paper'。
以下是有关如何使用注释为您带来好处的教程:构建自定义的 x 轴和 y 轴标题。
您可以阅读有关注释的更多信息。它们很有用!