首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条形图ggplot2 -错误:美学必须是长度1或与数据相同(150):填充,x,y

条形图ggplot2 -错误:美学必须是长度1或与数据相同(150):填充,x,y
EN

Stack Overflow用户
提问于 2018-08-13 08:08:07
回答 1查看 755关注 0票数 0

嘿,我知道关于这个错误有很多问题,但是我仍然找不到错误的地方,对R和一般的编码来说都是很新的。以下是五月数据的链接

https://www.dropbox.com/s/qfo5rp7ywgsgxhy/CRERDATA.csv?dl=0

这是我的代码来制作图表

显然,不是所有的图都是用在图上的。

代码语言:javascript
复制
library(car)
library(ggplot2)
library(Rmisc)
library(dunn.test)
library(FSA)

总结我的数据,这样我就可以得到标准错误条。

代码语言:javascript
复制
index_sum <- summarySE(CRERDATA, measurevar = "index", groupvars = c("site", "scenario"), na.rm = TRUE)

图码

代码语言:javascript
复制
index_graph <- ggplot(CRERDATA, aes(x = index_sum$site, y = index_sum$index, fill = index_sum$scenario)) +
  geom_bar(aes(fill = index_sum$scenario), position = position_dodge(), stat="identity") + ylab("Bleaching index") + xlab("Sites") + 
  labs(fill = "scenario") + scale_fill_grey() + theme_minimal() + 
  geom_errorbar(aes(ymin = index_sum$index-se, ymax = index_sum$index+se), width = .2, position = position_dodge(.9), color = "red")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-13 08:21:54

当您实际使用CRERDATA时,您已经在ggplot中将index_sum指定为data

装载必要的包裹:

代码语言:javascript
复制
library(ggplot2)
library(Rmisc)

阅读数据和摘要:

代码语言:javascript
复制
CRERDATA <- read.csv('CRERDATA.csv')
index_sum <- summarySE(CRERDATA, measurevar = "index", groupvars = c("site", "scenario"), na.rm = TRUE)

不要使用CRERDATA,而是使用index_sum。然后,您就不需要使用美元符号$来访问列:

代码语言:javascript
复制
ggplot(index_sum, aes(x = site, y = index, fill = scenario)) + 
  geom_bar(aes(fill = scenario), position = position_dodge(), stat="identity") + 
  ylab("Bleaching index") + xlab("Sites") + labs(fill = "scenario") + scale_fill_grey() + 
  theme_minimal() +
  geom_errorbar(aes(ymin = index-se, ymax = index+se), width = .2, position = position_dodge(.9), color = "red")

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51817821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档