ggplot2绘图报错:object 'mass (gm)' not found 求助
ggplot2绘图报错:object 'mass (gm)' not found的修复方案
问题背景
此前绘制MgNo的代码可正常运行:
MgNo_plot <- ggplot() + geom_point(data = MgNo_liq, aes(x = `T (C)`, y = MgNo), colour = "red") + geom_point(data = MgNo_Olv, aes(x = `T (C)`, y = MgNo), colour = "green") + geom_point(data = MgNo_Spn, aes(x = `T (C)`, y = MgNo), colour = "black") + geom_point(data = MgNo_Cpx, aes(x = `T (C)`, y = MgNo), colour = "purple") print(MgNo_plot)
复制上述代码并修改绘图名称与y变量为mass (gm)后,运行出现报错:
Error in FUN(X[[i]], ...) : object 'mass (gm)' not found
经核对各数据框列名:MgNo_liq的对应列名为liq mass (gm),其余数据框(MgNo_Olv、MgNo_Spn、MgNo_Cpx)的列名为mass (gm),拼写与大小写均无误。
简单修复方案
方案1:单独指定MgNo_liq的y列名
直接在对应geom_point的aes中,为MgNo_liq指定正确的列名liq mass (gm),其余部分保持不变:
mass_plot <- ggplot() + geom_point(data = MgNo_liq, aes(x = `T (C)`, y = `liq mass (gm)`), colour = "red") + geom_point(data = MgNo_Olv, aes(x = `T (C)`, y = `mass (gm)`), colour = "green") + geom_point(data = MgNo_Spn, aes(x = `T (C)`, y = `mass (gm)`), colour = "black") + geom_point(data = MgNo_Cpx, aes(x = `T (C)`, y = `mass (gm)`), colour = "purple") print(mass_plot)
方案2:临时重命名MgNo_liq的列(不修改原数据)
若希望保持所有geom_point的aes参数一致,可使用dplyr::rename临时将MgNo_liq的liq mass (gm)列重命名为mass (gm),无需修改原始数据框:
library(dplyr) mass_plot <- ggplot() + geom_point(data = MgNo_liq %>% rename(`mass (gm)` = `liq mass (gm)`), aes(x = `T (C)`, y = `mass (gm)`), colour = "red") + geom_point(data = MgNo_Olv, aes(x = `T (C)`, y = `mass (gm)`), colour = "green") + geom_point(data = MgNo_Spn, aes(x = `T (C)`, y = `mass (gm)`), colour = "black") + geom_point(data = MgNo_Cpx, aes(x = `T (C)`, y = `mass (gm)`), colour = "purple") print(mass_plot)
内容的提问来源于stack exchange,提问作者Umbra077
相关产品推荐
相关产品推荐

