传奇标题在剧情中

时间:2016-06-26 00:56:53

标签: r shiny plotly

如何在plotly中为图例指定标题?我有一个堆积条形图,绘制不同的持续时间,如0-10,11-20。我希望传奇标题能说'持续时间'。

2 个答案:

答案 0 :(得分:5)

指定图例标题的最简单方法是通过ggplot设置它并让plotly从相应的对象中读取它:

library( plotly )

gg <- ggplot( mtcars, aes( x=mpg, y=wt, color=factor(vs) ) ) +
  geom_point() + labs( color = "MyTitle" )
ggplotly( gg )

然而,问题是plotly将图例标题转换为注释,注释与流程中的图例断开连接。在我的浏览器中,它还与右上角的plotly菜单重叠:

enter image description here

要解决此问题,您可以完全删除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坐标,但前者锚定在底部,而后者锚定在顶部。这样可以防止标题与图例“断开连接”。以下是最终结果:

enter image description here

答案 1 :(得分:1)

如果您指的是the legend is titled, and the subplot's titles are customized ...

这样的内容

创建跟踪。在该跟踪中,使用annotations属性为图例添加名称。如果我指定x值,y值,并设置xref = 'paper'yref = 'paper',我可以随时随地向我的图表添加文字。

以下是有关如何将注释用于您的利益的教程:Constructing a customized x- and y- axis title

您可以阅读有关annotations的更多信息。它们很有用!