首页 > 解决方案 > R 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
        )
)

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

标签: rggplot2plotlyr-plotly

解决方案


您可以通过text“审美”传递您自定义的悬停文本,并tooltip="text"为您的调用添加参数ggplotly

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")

推荐阅读