【问题标题】:Formatting mouse over labels in plotly when using ggplotly使用ggplotly时在plotly中格式化鼠标在标签上
【发布时间】:2016-04-08 22:29:55
【问题描述】:

在使用 ggplotly 和鼠标悬停功能时,我在文本格式方面遇到了困难。

library(plotly)
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
g <- ggplot(df, aes(x,y)) + geom_point(aes(text=sprintf('letter: %s\nLetter: %s', a, b)))
g
(gg <- ggplotly(g))

我想在我的鼠标悬停标签上有一些格式化的文本或至少一个换行符。有没有关于如何设计这个鼠标悬停在气泡上的好文档?

【问题讨论】:

    标签: r ggplot2 plotly


    【解决方案1】:

    plotly 可以使用换行 HTML 标签。使用&lt;br&gt; 换行符后,您可以获得您想要的内容:

    g <- ggplot(df, aes(x,y)) + 
           geom_point(aes(text=sprintf("letter: %s<br>Letter: %s", a, b)))
    
    (gg <- ggplotly(g))
    

    【讨论】:

    • 太棒了,我没想到...这让甚至变得更加有趣!!!
    • @drmariod 这给了我以下错误:Error: (converted from warning) Ignoring unknown aesthetics: text ggplot2 is in version 2.2.1
    • 在具有多条线(按颜色区分)的折线图中使用此方法,我必须专门为组添加美感。即 geom_line(aes(x=x, y=y, text="", color=z, group=z)) 没有文本 group=z 是不必要的。然后我按照@Jon Olav Vik 的回答使用了 ggplotly(p, tooltip="text")。
    • 就我而言,我还需要 geom_line() 变体。下面的代码有效: myPlot
    【解决方案2】:

    请参阅tooltip argument to ggplotly()。例如,在悬停时仅显示物种名称(例如,右上角的 virginica):

    g <- ggplot(tail(iris), aes(Petal.Length, Sepal.Length, text=Species)) + geom_point()
    ggplotly(g, tooltip="text")
    

    其他例子:

    ggplotly(g, tooltip="x")             # Petal.Length: 5.7
    ggplotly(g, tooltip="Petal.Length")  # Petal.Length: 5.7
    ggplotly(g, tooltip=c("x", "y"))
    

    最后一个示例将显示两行工具提示

    Petal.Length: 5.7
    Sepal.Length: 6.7
    

    【讨论】:

    • 胜利的工具提示。
    • 谢谢,乔恩。该答案有助于解决我的问题。祝你有美好的一天。
    • 是否可以对原始图中未包含的变量执行此操作?将鼠标悬停在数据点上并查看该点的一些/所有其他变量?
    • @AndrewMcCartney 这将是我的第一个示例中的物种。 “文本”美学并不真正存在,也没有被 geom_point() 使用。
    • @JonOlavVik 谢谢你的帮助。如果您想在不完全覆盖的情况下添加“文本”美感怎么办?
    【解决方案3】:

    这是使用purrr's map function 的解决方案。它的工作让我有点惊讶,但我喜欢它。

    我将“字母:”和“字母:”标题加粗。这仍然会打印 x-y 坐标,您可以使用 ggplotly() 中的参数 tooltip 将其删除。

    df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
    g <- ggplot(df, aes(x,y)) + 
             geom_point(aes(text=map(paste('<b>letter:</b>', a, '<br>', '<b>Letter:</b>', b), HTML)))
    g
    (gg <- ggplotly(g))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-18
      • 2018-08-30
      • 2015-07-11
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 2019-06-04
      相关资源
      最近更新 更多