使用 ggplotly() 时如何保留字幕

goo*_*lan 8 r ggplot2 plotly

我有这个图表。

g <- retention_cohorts %>% 
  ggplot(aes(relative_week, round(percent,2), label=relative_week)) + 
  geom_line() +
  scale_y_continuous(labels = percent) +
  scale_x_continuous(breaks = seq(1,24,4),
                     labels = seq(1,6)
  ) +
  geom_text(nudge_y = .02) +
  labs(
    title = "Purchasing Retention Analysis",
    subtitle = "Customers who order at least one item each week",
    y = "Customers with at least One Purchase",
    x = "Relative Month"
  ) + theme_light()
Run Code Online (Sandbox Code Playgroud)

这是一个很棒的图表,我想让它具有交互性。当我使用 时ggplotly(g),它几乎完美地重新创建了它,只是它删除了副标题。有没有办法强制它保留副标题或plotly在创建实体后添加新文本作为副标题?

Mel*_*zar 8

这对我帮助,带有 ggplotly 的字幕。似乎任何添加到 ggplot 的注释或字幕等文本都必须在 ggplotly 函数之后放入布局函数中。

plot <- retention_cohorts %>% 
  ggplot(aes(relative_week, round(percent,2), label=relative_week)) + 
  geom_line() +
  scale_y_continuous(labels = percent) +
  scale_x_continuous(breaks = seq(1,24,4),
                     labels = seq(1,6)) +
  geom_text(nudge_y = .02) +
  labs(y = "Customers with at least One Purchase",
       x = "Relative Month") + 
  theme_light()

ggplotly(plot) %>%
  layout(title = list(text = paste0('Purchasing Retention Analysis',
                                    '<br>',
                                    '<sup>',
                                     'Customers who order at least one item each week','</sup>')))
Run Code Online (Sandbox Code Playgroud)