情节中的图例标题

Posted

技术标签:

【中文标题】情节中的图例标题【英文标题】:Legend title in plotly 【发布时间】:2016-10-28 07:22:59 【问题描述】:

如何在plotly 中指定图例的标题?我有一个堆积条形图,它绘制不同的持续时间,如 0-10、11-20。我希望图例标题显示“持续时间”。

【问题讨论】:

你提供了一个可重现的例子 是的,贴一个小提琴或密码笔。它可以帮助人们使用您的特定用例。 @MLavoie 喜欢这张照片:i1.wp.com/dacrook.com/wp-content/uploads/2016/05/… 标题是“充电”。 【参考方案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 的更多信息。它们很有用!

【讨论】:

【参考方案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 坐标用于标题和图例,但前者锚定在底部,而后者锚定在顶部。这样可以防止标题与图例“断开连接”。最终结果如下所示:

【讨论】:

以上是关于情节中的图例标题的主要内容,如果未能解决你的问题,请参考以下文章

如何使 ggplot2 中的图例与我的情节高度相同?

Gnuplot 4.6 中的图例修改

情节图例掩盖了图中的情节线

seaborn中的图例重叠绘图区域[重复]

如何更改ggplot中的图例标题

如何更改ggplot中的图例标题