如何在ggplotly对象中自定义悬停信息?

Jin*_*Liu 7 r plotly

有没有办法在ggplotly对象中自定义hoverinfo?

例如,

p <- ggplot(mtcars, aes(x = disp, y= am, color = as.factor(cyl)))+geom_point()

ggplotly(p)
Run Code Online (Sandbox Code Playgroud)

这里的悬停信息框包含三个变量:disp,am和factor(cyl).如何在悬停信息框中包含更多变量或排除现有变量?

谢谢!

Hub*_*rtL 11

您可以包含必需的变量aes()然后用于tooltip指定应显示的变量:

p <- ggplot(mtcars, aes(x = disp, y= am, color = as.factor(cyl), 
                        gear=gear, hp=hp))+geom_point()
ggplotly(p,tooltip = c("x", "gear", "hp"))
Run Code Online (Sandbox Code Playgroud)


Fit*_*esh 7

一种更简洁的方法是仅添加环境中的所有内容ggplot,使用美学两次,以便将完整的单个对象传递到ggplotly()

p <- ggplot(mtcars, aes(label = gear, label2 = hp)) + 
     geom_point(aes(x = disp, y= am, color = as.factor(cyl)))

ggplotly(p)
Run Code Online (Sandbox Code Playgroud)


小智 7

如果您想将 html 格式添加到悬停信息中,您可以在函数中text使用设置属性。然后使用in参数中的值:paste()aes()textaes()tooltipggplotly()

p <- ggplot(mtcars, aes(x = disp, y= am, color = as.factor(cyl), 
                        text= paste("Displacment: ", disp, "<br>", 
                                    "Automatic: ", am, "<br>",
                                    "Number of cylinders: ", cyl, "<br>",
                                    "mpg: ", mpg, sep = "")))+
  geom_point()

ggplotly(p, tooltip = c("text"))

Run Code Online (Sandbox Code Playgroud)

这种方法允许您将标准参数中未包含的变量包含aes()到悬停信息中(如mpg上面的代码块所示)。