ggplotly 中错误栏和条形图的工具提示问题

The tooltip issue in ggplotly for error bars and bar chart

我使用 ggplotly 绘制图表。当光标移动到图表顶部时,我正在使用工具提示函数来表示条形图中的值。

Source_Data <-
data.frame(
key = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
Product_Name = c(
  "Table",
  "Table",
  "Chair",
  "Table",
  "Bed",
  "Bed",
  "Sofa",
  "Chair",
  "Sofa"
 ),
 Product_desc = c("XX", "XXXX", "YY", "X", "Z", "ZZZ", "A", "Y", "A"),
 sd = c(0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.7, 0.8, 0.5),
 Cost = c(1, 2, 3, 4, 2, 3, 4, 5, 6)

 )


ggplotly((
Source_Data %>%
ggplot(
  aes(
    Product_Name,
    Cost,
    ymin = Cost - sd,
    ymax = Cost + sd,
    fill = Product_desc,
    text = paste("Product Name:", Product_Name, "<br>", "Cost:", Cost)
  )
  ) +
  geom_col(position = position_dodge2(width = .9, preserve = "single")) +
  geom_errorbar(position = position_dodge2(
  width = .9,
  preserve = "single",
  padding = .5
  )) +
  geom_text(
  aes(y = Cost + sd, label = Cost),
  position = position_dodge2(width = .9),
  vjust = -1
  ) +
  facet_wrap( ~ key, scales = "free_x", strip.position = "bottom") +
  theme(strip.placement = "outside") +
  theme_bw()
  ),
  tooltip = "text"
  )

当我将光标移到条上时,我得到了文本值,这很好。但是当我将它移到错误栏的顶部时,我也会得到不同颜色的文本值。有没有一种方法可以让我只在条形图的顶部而不是在误差条形图上获得 text/label 值?

您必须在 geom_col 中设置 text 美学:

  Source_Data %>%
    ggplot(
      aes(
        Product_Name,
        Cost,
        ymin = Cost - sd,
        ymax = Cost + sd,
        fill = Product_desc
      )
    ) +
    geom_col(aes(text = paste("Product Name:", Product_Name, "<br>", "Cost:", Cost)),
             position = position_dodge2(width = .9, preserve = "single")) +
    ......