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

如何解决ggplot2条形图(barplot)中出现NA值的问题?

问题原因及解决办法

问题根源

你的df数据中,Condition列的"Down "值末尾带有空格,但绘图代码里factor(Condition, levels = c('Down','Up','ns'))指定的水平是无空格的'Down',两者不匹配,导致所有带空格的"Down "被判定为无效水平,转换为NA,最终绘图时出现NA对应的异常区域。

解决方法

方案1:清理数据中的空格

先对Condition列做首尾空格清理,统一格式:

# 去除Condition列字符串首尾的空格
df$Condition <- trimws(df$Condition)

之后再运行原绘图代码即可正常显示。

方案2:修改levels匹配原始数据

如果不想修改原始数据,直接调整factor的levels参数,匹配带空格的"Down ":

ggplot(df,aes(fill = factor(Condition, levels = c('Down ','Up','ns')),
               y = Number.of.genes, x = Cancer.type)) + 
 geom_bar(position="stack", stat="identity")+theme_bw()+
 theme(axis.text.x = element_text(size = 10, angle = 45, hjust = 1, colour = 'black'))+
 scale_fill_manual(values=c("seagreen2", "deepskyblue3",'goldenrod1'))+
 labs(fill = 'Condition', x = NULL)

效果验证

两种方法都能让Down类别正确匹配到指定填充色,消除图中的NA异常区域,堆叠条形图显示正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:15:33