You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R Shiny中如何修改ggplotly geom_bar悬浮提示为分类与计数格式

解决方案

核心原因是geom_bar默认执行计数统计变换,原始数据集不存在预计算的计数字段,需要用ggplot提供的方法获取统计后的计数值。

修正后的代码如下:

output$plotb <- renderPlotly({
  p <- ggplot(data = dataset(), aes(x = .data[[input$bo]])) +
    geom_bar(
      fill = 'cornflowerblue',
      color = "black",
      aes(text = paste0(
        "Category: ", .data[[input$bo]],
        "<br>Count: ", after_stat(count)
      ))
    ) +
    labs(
      title = sprintf("Bar chart of %s", input$bo),
      x = input$bo,
      y = "Frequency"
    ) +
    theme_light()
  ggplotly(p, tooltip = "text")
})

关键修改说明

  • 把自定义tooltip的text美学映射移动到geom_bar层:计数值是柱状图统计变换后才生成的变量,放在对应几何图层才能正确取值
  • 使用after_stat(count)引用统计后的计数值:这是ggplot2 v3.3.0及以上版本的标准写法,专门用来调用统计变换生成的内部变量;如果使用的是更早版本的ggplot2,可以替换为..count..兼容
  • 用.data[[input$bo]]引用动态列:符合ggplot2的编程规范,避免在美学映射中重复调用响应式数据集,减少取值不一致的潜在问题

内容的提问来源于stack exchange,提问作者c.jungc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:15:03