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

Shiny中plotly添加hoverinfo时报Tibble列尺寸不兼容错误如何解决

报错排查与解决方法

核心问题1:hover文本参数写法错误

你当前plot_ly中text参数的写法不符合plotly的公式语法规则:不能在paste()内部为每列单独加~符号,公式标记~需要放在整个表达式的最外层,代表引用传入的data数据框的字段。

核心问题2:未处理空数据边界场景

当用户还未在花瓣长度选择器中选中任何值时,df_1()返回的是空数据框,此时x、y、color对应的列长度为0,但错误写法下生成的text长度和空数据不匹配,触发尺寸兼容报错。

具体修改方案

只需要修改output$correlation_plot部分的代码即可,修改后代码如下:

output$correlation_plot <- renderPlotly({
    # 增加数据校验:只有df_1有数据时才执行后续绘图逻辑,避免空数据报错
    req(nrow(df_1()) > 0)
    plot1 <- plot_ly(data=df_1(),
                     x = ~Petal.Length,
                     y = ~Petal.Width,
                     type = 'scatter',
                     #mode ="lines+markers",
                     color =~Petal.Length,
                     # 把~移到paste外层,统一引用数据框字段
                     text = ~paste("Sepal.Length:", Sepal.Length,"<br>",
                                  "Sepal.Width:", Sepal.Width,"<br>",
                                  "Petal.Length:", Petal.Length,"<br>",
                                  "Petal.Width:", Petal.Width,"<br>",
                                  "Species:", Species),
                     hoverinfo = 'text'
                     
    )
})

效果验证

修改后:

  • 未选中花瓣长度时不会触发绘图逻辑,无报错
  • 选中数据后hover提示正常显示所有自定义字段,无尺寸不匹配问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:33:03