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

Shiny中radioButtons切换fmsb雷达图触发lwd参数无效报错问题

报错成因
  • fmsb包的radarchart()函数对输入数据有强制格式要求:输入数据框必须以各维度最大值行、各维度最小值行作为前2行,从第3行开始才是待可视化的样本数据。你的代码在server端筛选待展示英雄时,仅提取了对应英雄的单行数据,未保留必需的max、min基准行,完全不符合函数输入规范。
  • R默认会将数据框单行提取的结果降维为原子向量,而非保留数据框结构,导致函数内部解析线宽参数(plwd/底层绘图的lwd)时长度匹配失败,最终抛出invalid value specified for graphical parameter "lwd"报错。
  • 你代码中设置的plwd = 0.5本身没有语法问题,并非参数值非法触发报错。
修复方法

修改server端的数据筛选逻辑,每次构造绘图数据集时,必须保留前2行max、min基准值,再拼接选中的英雄数据,同时添加drop = FALSE参数防止数据框降维。
修复后的完整可运行代码如下:

library(fmsb)

data<-data.frame(Strength = c(7, 0, 6, 7, 4, 3), 
                 Speed = c(7, 0 , 5, 7, 3, 2),
                 Intelligence = c(7, 0, 6, 2, 4, 3),
                 Fighting_Skills = c(7, 0, 4, 4, 4, 6),
                 Energy = c(7, 0, 6, 6, 1, 1),
                 Durability = c(7, 0, 6, 6, 3, 3),
                 row.names = c("max", "min", "Iron Man", "Thor", "Spiderman", "Captain America"))

colors_fill<-c(scales::alpha("gray", 0.1))
colors_line<-c(scales::alpha("darkgray", 0.9))

ui <- fluidPage(
    titlePanel("Radar chart"),
    sidebarLayout(
        sidebarPanel(
            radioButtons("variablechoice", "People Choice", 
                         choices = c("Iron Man", "Thor", "Spiderman", "Captain America"),
                         selected = "Thor")
        ),
        mainPanel(
           plotOutput("radar")
        )
    )
)

server <- function(input, output) {
    output$radar <- renderPlot({
      # 匹配选中英雄对应的行号
      hero_idx <- switch (input$variablechoice,
        "Iron Man" = 3,
        "Thor" = 4,
        "Spiderman" = 5,
        "Captain America" = 6
      )
      # 拼接max、min基准行和目标英雄行,禁止降维
      plot_data <- data[c(1,2, hero_idx), , drop = FALSE]
      
      radarchart(plot_data,
                 seg = 7,
                 pcol = colors_line,
                 pfcol = colors_fill, 
                 plwd = 0.5)
    })
}

shinyApp(ui = ui, server = server)

运行上述代码后,切换单选按钮即可正常展示对应超级英雄的多维属性雷达图,不会再触发lwd参数相关报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 01:21:34