Como corrigir: a estética deve ter comprimento 1 ou igual aos dados.
Um erro que você pode encontrar no R é:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Este erro ocorre quando você tenta especificar cores de preenchimento para usar em um gráfico ggplot2, mas o número de cores especificado não é igual a 1 ou não é igual ao número total de objetos a serem preenchidos.
O exemplo a seguir mostra como corrigir esse erro na prática.
Como reproduzir o erro
Digamos que estamos trabalhando com o conjunto de dados R integrado chamado airquality :
#view first six lines of air quality dataset
head(airquality)
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
Agora suponha que tentamos criar vários box plots para visualizar a distribuição dos valores de ozônio para cada mês:
library (ggplot2)
#attempt to create multiple boxplots
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red '))
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Estamos recebendo um erro porque há 5 meses únicos no conjunto de dados (portanto, criaremos 5 boxplots), mas fornecemos apenas duas cores para o argumento de preenchimento .
Como corrigir o erro
Existem duas maneiras de corrigir esse erro:
Método 1: use apenas uma cor no argumento de preenchimento
Poderíamos escolher usar apenas uma cor no argumento de preenchimento:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))
Isso nos permite preencher cada boxplot com a mesma cor.
Método 2: use o mesmo número de cores que o número de boxplots
Também poderíamos especificar cinco cores a serem usadas, pois isso corresponde ao número de boxplots que criaremos:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))
Não recebemos nenhum erro porque o número de cores que fornecemos corresponde ao número de boxplots.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns no R:
Como corrigir: valor discreto fornecido em escala contínua
Como consertar: o argumento não é numérico nem lógico: retorna na
Como corrigir: a substituição tem comprimento zero