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

ggplot2绘制柱状图时报错Error in abs(x): non-numeric argument问题求助

错误原因
  • 代码存在语法错误:df$Sources <- as.character(df$Sources))末尾多了一个多余的右括号,该行无法正常执行,导致Sources列始终保留原始的AsIs类属性,ggplot2无法识别该类作为分类轴变量,触发数值计算相关报错。
  • Sources列的取值存在大量尾随空格,会导致坐标轴标签显示异常,也会干扰后续数据匹配、分组等操作。
解决方法

修正语法问题,同时清理多余空格即可正常绘图,修改后代码如下:

# 加载依赖包(未安装可先运行 install.packages(c("dplyr","ggplot2")) 安装)
library(dplyr)
library(ggplot2)

S <- summary(object = results, k = 10, pause = FALSE)
df <- S$MostRelSources

df <- df %>% 
  # 重命名带空格的列
  dplyr::rename(Sources = `Sources       `) %>% 
  dplyr::mutate(
    # 转换类型+清理取值首尾空格,去除AsIs类属性
    Sources = trimws(as.character(Sources)),
    # 确保Articles列为数值型
    Articles = as.numeric(Articles)
  )

# 绘制柱状图
ggplot(df, aes(x = Sources, y = Articles)) +
  geom_col()

如果需要调整x轴标签显示角度避免重叠,可以在绘图代码后添加+ theme(axis.text.x = element_text(angle = 45, hjust = 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:27:03