【问题标题】:Not getting the desired title in gganimate - animated labels with expression没有在 gganimate 中获得所需的标题 - 带有表情的动画标签
【发布时间】:2021-07-09 09:30:51
【问题描述】:

我想在使用gganimate 的变量旁边添加一个m^2 m^-2 单位(但作为表达式)。例如,当我只使用ggplot2 时,以下内容会给出我想要的输出:

library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) + 
        geom_point() +
        labs(title = "Hp" ~ m^2 ~ m^-2)

但是,当我使用 gganimate 执行以下操作时,我没有得到 Hp 的变化值,而是 {closest_state}

library(gganimate)
ggplot(mtcars, aes(wt, mpg)) + 
        geom_point() + 
        transition_states(hp) +
        labs(title = expression('Hp = {closest_state}' ~ m^2 ~ m^-2))

我该如何解决这个问题?

【问题讨论】:

  • 当我运行你的 gganimate 代码时,我收到一个错误 Error: Provided file does not exist
  • @RonakShah 你能检查更新的代码吗?我更新了gganimate 代码中的一些内容(但旧代码仍然适用于我)。
  • 你必须将字符串作为expression 传递吗?如果你直接将它作为字符串传递呢?类似labs(title = 'Hp = {closest_state} m²')
  • @RonakShah 我强烈希望将其作为表达式传递。因为这只是一个简单的例子,实际上我必须写物理公式和单位。顺便说一句,你是如何在 R 中直接写 这样的?
  • 我刚刚在网上某处找到 并将其复制粘贴到R 中。

标签: r ggplot2 gganimate


【解决方案1】:

您可以使用ggtext,它允许limited subset of Markdown format
这对于您的示例中的指数和指数来说已经足够了,但不幸的是Latex math isn't yet available

library(ggtext)
library(gganimate)

ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() + 
  transition_states(hp) +
  labs(title = "Hp : {closest_state} m^2  m^-2")+
  theme(plot.title = element_markdown())

【讨论】:

  • 非常好。谢谢。看看这个赏金是如何进行的,但你已经处于一个很好的位置:) - 另一方面,OP 仍然需要看看这是否也适用于他们可能更复杂的表达式。
  • @tjebo 感谢您的评论。查看我的编辑:不幸的是 Latex $math 还没有工作:-(
  • FWIW 我在 GitHub github.com/thomasp85/gganimate/issues/439 上提出了问题/功能请求。我一直在尝试各种组合以想出一种正确解析它的方法,但无济于事。很想听听包维护者对此的看法。
  • @Waldi 的方法(使用ggtext)对我使用的一些单位非常有效。但是当事情变得稍微复杂时,它就不起作用了。虽然我已经接受了@Waldi 的回答(因为它确实解决了我最初发布的具体问题示例),但我仍在寻找适用于所有数学表达式的其他方法。
猜你喜欢
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
相关资源
最近更新 更多