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

R语言绘制并排条形图时B+、C+等级标签显示异常如何解决

问题原因
  • 核心问题出在data.frame()的默认参数设置上:R的data.frame()默认开启check.names = TRUE,会自动将列名中不符合变量命名规则的字符(比如+)替换为.,因此你预设的B+、C+列名在数据生成阶段就已经被改为B.、C.,最终导致x轴标签显示异常,代码本身没有语法错误,属于参数默认值带来的非预期效果。
修改方案

你可以任选一种,也可以同时使用双重保障:

  1. 创建数据框时关闭列名检查:在data.frame()参数中添加check.names = FALSE,禁止R自动修改列名。
  2. 手动指定barplot的x轴标签:在barplot()中添加names.arg参数,直接传入你想要显示的等级标签列表。
修正后完整代码
# 创建数据时关闭列名检查
data <- as.matrix(data.frame("A" = c(18,7),
                             "B+" = c(3,2),
                             "B" = c(3,3),
                             "C+" = c(6,0),
                             "C" = c(7,0),
                             "D" = c(0,4),
                             "E" = c(5,23),
                             check.names = FALSE))


barplot(data,
        col = c("red","blue"),
        beside = TRUE,
        xlab = "Grade",
        ylab = "Frequency",
        # 可选:手动指定标签进一步确保显示正确
        names.arg = c("A","B+","B","C+","C","D","E"))


legend("topleft",
       c("IFC6503-A","IFC6510"),
       fill = c("red","blue"),
       inset = c(.01,0)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:54:03