首页 > 解决方案 > 错误:美学必须是长度 1 或与数据相同 (9):标签

问题描述

在我过滤一个简单的数据农场后出现此错误,从 12 obs 到 9,两者都有 2 个变量...

tmp_Type <- c("A", "B", "C","D", "E", "F", "G", "H", "I", "J", "K", "L")
tmp_Sum <- c(380000.2,0,1500,4532,2,34567,29344,545,838.5,1000,0,0)
tmp_Sum <- round(tmp_Sum)

sum(tmp_Sum, na.rm=T)

tmp_Summary <- data.frame(tmp_Type, tmp_Sum) # create df

summary(tmp_Summary)

ggplot(data=tmp_Summary, aes(x=tmp_Type, y=tmp_Sum)) +
  geom_histogram (stat = "identity", aes(fill= tmp_Type)) +
  geom_text (label = (tmp_Sum), vjust=-1, hjust=0.5)

tmp_Summary <- tmp_Summary %>% filter(tmp_Sum > 0)

summary(tmp_Summary)

ggplot(data=tmp_Summary, aes(x=tmp_Type, y=tmp_Sum)) +
  geom_histogram (stat = "identity", aes(fill= tmp_Type)) +
  geom_text (label = (tmp_Sum), vjust=-1, hjust=0.5)

标签: rggplot2aesthetics

解决方案


第一个情节起作用的原因是因为您tmp_Sum在全球环境中有矢量。如果您在创建数据框后删除它们,第一个图也会给您错误。

tmp_Type <- c("A", "B", "C","D", "E", "F", "G", "H", "I", "J", "K", "L")
tmp_Sum <- c(380000.2,0,1500,4532,2,34567,29344,545,838.5,1000,0,0)
tmp_Sum <- round(tmp_Sum)
tmp_Summary <- data.frame(tmp_Type, tmp_Sum) 
rm(tmp_Type, tmp_Sum) #removing variables

现在情节。

library(ggplot2)
ggplot(data=tmp_Summary, aes(x=tmp_Type, y=tmp_Sum)) +
  geom_histogram (stat = "identity", aes(fill= tmp_Type)) +
  geom_text (label = (tmp_Sum), vjust=-1, hjust=0.5)

图层错误(数据 = 数据,映射 = 映射,stat = stat,geom = GeomText,:找不到对象 'tmp_Sum'

始终包括labelinside aes

library(ggplot2)
ggplot(data=tmp_Summary, aes(x=tmp_Type, y=tmp_Sum)) +
  geom_histogram (stat = "identity", aes(fill= tmp_Type)) +
  geom_text (aes(label = tmp_Sum), vjust=-1, hjust=0.5)

在此处输入图像描述


推荐阅读