左对齐ggplot标题(尝试hjust / margin(),没有任何作用)

时间:2017-01-17 05:27:37

标签: r ggplot2 alignment margin title

所以我知道有很多关于这个问题的帖子(我想我此时已经全部阅读过)。在学习了hjust / vjust之后,我尝试使用hjust和margin()是hacks并且没有任何工作;无论我做什么,ggplot标题仍保持中心对齐。我需要它左对齐。这可能吗?它与我当前代码的布局有关吗?有人可以帮忙吗?!代码如下。非常感谢你提前! :)

另外,除了上述问题之外,是否可以将标题文本放在彩色框内?例如,嵌入黑盒内的白色文本?

再次感谢!

output$plot <- renderPlotly({
    if(input$Player == "")
      return(NULL)

    player_trend <- injury[injury$Player == input$Player, ]

    ggideal_point <- ggplot(player_trend) +
      geom_line(aes(x = Season, y = WAR), size = 1.25) +
      geom_point(aes(x = Season, y = WAR), size = 3) +
      labs(x = "Season", y = "WAR") +
      ggtitle("Title Goes Here") +

1 个答案:

答案 0 :(得分:2)

您没有提供任何数据,也没有提供错误和可能需要的输出的图片,并且实际上已经提出了多个问题。

你正在寻找以ggplot2为后期的操作 - 构建grob级别。这是一些严重低级别的工作。

此:

#' Completely flush-left-align ggplot2 title
#'
#' @return \code{gtable} object
#' @param gg ggplot2 object
title_left <- function(gg) {

  gt <- ggplot_gtable(ggplot_build(gg))
  gt$layout[which(gt$layout$name == "title"), c("l", "r")] <- c(1, max(gt$layout$r))
  gt

}

flush-left(完全)对齐标题。它不再是ggplot2对象,您需要使用grid函数来绘制它(例如grid::grid.newpage()grid::grid.draw())。如果你想要它不完全冲洗左,你需要调整功能。

对于你过于深入的第二个问题,你需要使用这样的东西 - https://stackoverflow.com/a/37156845/1457051 - 然后改变上面的功能,将facet title和rect grobs移位(我和#39;我不会这样做,但这里的其他人可能会为你做。)

无论其

你不在ggplot2 - 土地,你在shiny并使用plotly所以这一切都没有实际意义。请注意,您实际上没有告诉我们output$plot <- renderPlotly({暗示了它。你讽刺的是,你对互动的渴望会限制你的选择。 plotly对于快速互动来说非常棒,但是您花在创建自己的htmlwidget上的时间比尝试将解决方案变为plotly所花费的时间少(尽管为自己添加自定义CSS)有针对性的情节元素可以起作用,但也会涉及研究)。