R Shiny中Plotly绘图函数背景hover显示填充色而非自定义文本问题
解决R Shiny中独立函数内Plotly背景块Hover异常问题
显式配置add_polygons的Hover参数
直接在add_polygons中明确指定自定义文本和hover规则,确保参数传递正确:create_custom_plot <- function() { # 初始化plotly对象并添加散点 p <- plot_ly() %>% add_markers( data = scatter_dataset, x = ~x_col, y = ~y_col, text = ~paste("数值:", value_col), hoverinfo = "text" ) %>% # 添加背景多边形并配置hover add_polygons( data = bg_dataset, x = ~x_coords, y = ~y_coords, text = ~paste("区块名称:", block_name), # 自定义hover文本 hoverinfo = "text", # 强制仅显示text内容 fillcolor = ~block_color, line = list(width = 0) # 隐藏边框避免hover干扰 ) %>% layout(hovermode = "closest") # 确保hover触发最近元素 return(p) }用plotly_build初始化完整对象后再修改
若需要调整底层数据,先通过plotly_build()生成完整的Plotly对象结构,避免下标越界错误:create_custom_plot <- function() { p <- plot_ly() %>% add_markers(...) %>% add_polygons(...) %>% layout(...) # 生成完整的Plotly底层结构 p_built <- plotly_build(p) # 定位背景块对应的数据集(假设是第2个数据条目) p_built$x$data[[2]]$text <- bg_dataset$custom_hover_text p_built$x$data[[2]]$hoverinfo <- "text" return(p_built) }校验数据绑定一致性
确认add_polygons的data参数指向正确数据集,text绑定的列名无拼写错误;同时确保背景块的x/y坐标构成闭合多边形(首尾坐标一致),否则会导致hover检测异常。
内容的提问来源于stack exchange,提问作者Stinky_Goat
相关产品推荐
相关产品推荐

