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

Shiny中Plotly柱状图点击高亮触发options命名列表报错问题

问题定位

  • 核心错误来源是管道逻辑冲突:你已经通过管道将highlight_key()处理后的带分组高亮标识的crosstalk对象传给plot_ly(),但在plot_ly()参数里又显式指定了data=number_of_debates_from_1803_1910,直接覆盖了管道传入的带高亮键的对象,导致highlight()函数无法识别到有效分组配置,触发参数校验错误。

解决方案

直接删除plot_ly()中手动指定的data参数即可,修改后的可运行代码如下:

library(data.table)
library(plotly)
library(dplyr)
# 若提示缺少crosstalk相关依赖,先执行 install.packages("crosstalk") 安装即可

number_of_debates_from_1803_1910 <- fread("~/projects/hansard-shiny/app-data/introduction/number_of_debates_from_1803_1910.csv")

number_of_debates_from_1803_1910 %>%
  highlight_key(~decade) %>%
  plot_ly(
    x = ~decade, 
    y = ~no_of_debates, 
    type = 'bar', 
    text = ~paste0("Decade: ", "<b>", decade, "</b>", "\n",
                   "Number of Debates: ", "<b>", no_of_debates, "</b>", "\n"),
    hoverinfo = "text",
    marker = list(color = 'rgb(158,202,225)',
                  line = list(color = 'rgb(8,48,107)',
                              width = 1.5))
  ) %>% 
  layout(
    title = paste0("The Hansard Parliamentary Debates", "\n", "Debate Count by Decade: 1803—1910"),
    xaxis = list(title = ""),
    yaxis = list(title = "")
  ) %>%
  highlight(on = "plotly_click", off = "plotly_doubleclick") %>%
  config(displayModeBar = F) 

修改后运行即可实现点击柱子高亮、双击取消高亮的预期效果。

内容的提问来源于stack exchange,提问作者generic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:54:04