解决报错:`Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric-alike variables`

R语言ggplot2绘制条形图:调整y轴范围
在使用ggplot2绘制条形图时,遇到错误'only defined on a data frame with all numeric-like variables'。原因是数据格式问题。检查后发现代码中ylim函数未指定正确的列名。修复方法是在ylim中指定Weight列,如ylim(0,max(cabbage_exp$Weight)*1.05)。记住,检查代码和数据格式是解决这类问题的关键。

项目场景:

ggplot绘制条形图,想将y轴上限上调,美化图形。

ggplot(cabbage_exp, aes(interaction(Date, Cultivar), Weight)) +
  geom_bar(stat='identity') +
  geom_text(aes(label=Weight), vjust=0.2) +
  ylim(0, max(cabbage_exp)*1.05)

问题描述

运行之后出现如下报错:

Error in FUN(X[[i]], ...) : 
  only defined on a data frame with all numeric-alike variables

原因分析:

报错提示是定义数据框仅用了类似数字的变量

看起来不知道哪里错了,于是上网查了一下资料。

参考Error in FUN(X[[i]], …) : only defined on a data frame with all numeric variables in running a MDS in vegan

大概就是说数据格式出了问题,需要排除空格这些玩意。


解决方案:

这里先检查一下数据:
数据
Weight 列没有问题,是数字变量,符合绘图要求。 于是检查了一下代码:

ggplot(cabbage_exp, aes(interaction(Date, Cultivar), Weight)) +
  geom_bar(stat='identity') +
  geom_text(aes(label=Weight), vjust=0.2) +
  ylim(0, max(cabbage_exp)*1.05)

发现ylim(0, max(cabbage_exp)*1.05)遗漏了选定Weight列。

ggplot(cabbage_exp, aes(interaction(Date, Cultivar), Weight)) +
  geom_bar(stat='identity') +
  geom_text(aes(label=Weight), vjust=0.2) +
  ylim(0, max(cabbage_exp$Weight)*1.05)

修改后的图片

总而言之,遇到这个问题,你需要去检查你的代码和数据格式。
All in all, you need to check your codes and date format when you confront same problem

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bio大恐龙

您的打赏是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值