使用ggplotly时,将鼠标格式化为标签

drm*_*iod 25 r ggplot2 plotly

在使用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))
Run Code Online (Sandbox Code Playgroud)

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

小智 30

请参阅tooltipggplotly()参数.例如,virginica在悬停时仅显示物种名称(例如右上角):

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

其他例子:

ggplotly(g, tooltip="x")             # Petal.Length: 5.7
ggplotly(g, tooltip="Petal.Length")  # Petal.Length: 5.7
ggplotly(g, tooltip=c("x", "y"))
Run Code Online (Sandbox Code Playgroud)

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

Petal.Length: 5.7
Sepal.Length: 6.7
Run Code Online (Sandbox Code Playgroud)

  • 获胜的工具提示. (2认同)
  • 是否可以对原始图中未包含的变量执行此操作?将鼠标悬停在数据点上并查看该点的一些/所有其他变量? (2认同)

Jot*_*ota 19

plotly可以使用换行符HTML标记.您可以使用<br>标记获取换行后的内容:

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

(gg <- ggplotly(g))
Run Code Online (Sandbox Code Playgroud)

  • @drmariod这给了我一个跟随错误:`错误:(从警告转换)忽略未知的美学:text` ggplot2在版本2.2.1 (3认同)
  • 真棒,我没想过......这让*甚至*更有趣! (2认同)
  • 在具有多条线(按颜色区分)的折线图中使用此方法,我必须专门为组添加美感。即 geom_line(aes(x=x, y=y, text="", color=z, group=z)) 没有文字 group=z 是不必要的。然后我根据@Jon Olav Vik 的回答使用了 ggplotly(p, tooltip="text") 。 (2认同)