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
相关产品推荐
相关产品推荐

