R Plotly如何同时使用位置闪避和格式化悬停文本

R Plotly how to use both position dodge and format hover text

我想创建一个 plotly 对象,它是 1.) 在 x 轴上躲闪的位置和 2.) 按照我想要的方式格式化文本。我可以分别满足每个条件,但无法同时满足。

这里我有一个适当位置闪避的情节

library(tidyverse)
library(plotly)

df <- data.frame(
  x = c(1, 2, 3, 4),
  y = runif(8, 5, 10),
  cat = c("a", "a", "a", "a", "b", "b", "b", "b")
)

p <- ggplot(df, groups = cat) +
  geom_point(aes(x = x, y = y, color = cat),
             position = position_dodge(width = 0.3))

ggplotly(p)

这里我有一个带格式化悬停文本的绘图

plot_ly(df, x = ~x, 
        y = ~y, 
        type = 'scatter', 
        mode = 'markers',
        color = ~cat,
        hoverinfo = 'text',
        text = ~paste('</br> X is ', x,
                      '</br> Y is ', y,
                      '</br> Cat is ', cat
        )
)

如何将这两个想法结合起来,以便我有一个位置躲避的情节以及手动格式化的悬停文本?

您可以通过 text“美学”传递自定义的悬停文本,并在 ggplotly:

的调用中添加参数 tooltip="text"
library(tidyverse)
library(plotly)

df <- data.frame(
  x = c(1, 2, 3, 4),
  y = runif(8, 5, 10),
  cat = c("a", "a", "a", "a", "b", "b", "b", "b")
)

p <- ggplot(df, groups = cat) +
  geom_point(aes(x = x, y = y, color = cat, 
                 text = paste('</br> X is ', x, '</br> Y is ', y, '</br> Cat is ', cat)), 
             position = position_dodge(width = 0.3))

ggplotly(p, tooltip = "text")