Как исправить: длина эстетики должна быть либо равна 1, либо равна длине данных.
Ошибка, с которой вы можете столкнуться в R:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Эта ошибка возникает, когда вы пытаетесь указать цвета заливки для использования на графике ggplot2, но количество указанных вами цветов не равно 1 или не равно общему количеству объектов, подлежащих заливке.
В следующем примере показано, как исправить эту ошибку на практике.
Как воспроизвести ошибку
Допустим, мы работаем со встроенным набором данных R под названием 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
Теперь предположим, что мы пытаемся создать несколько коробчатых диаграмм, чтобы визуализировать распределение значений озона за каждый месяц:
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
Мы получаем ошибку, поскольку в наборе данных есть 5 уникальных месяцев (поэтому мы создадим 5 коробчатых диаграмм), но мы указали только два цвета в аргументе заполнения .
Как исправить ошибку
Есть два способа исправить эту ошибку:
Способ 1. Используйте только один цвет в аргументе заливки.
Мы могли бы использовать только один цвет в аргументе заливки:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))
Это позволяет нам заполнять каждый коробчатый график одним и тем же цветом.
Метод 2: используйте то же количество цветов, что и количество коробчатых диаграмм.
Мы также могли бы указать пять цветов, поскольку это соответствует количеству коробчатых диаграмм, которые мы создадим:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))
Мы не получаем никаких ошибок, поскольку количество предоставленных нами цветов соответствует количеству коробчатых диаграмм.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:
Как исправить: дискретное значение предоставляется в непрерывном масштабе
Как исправить: аргумент не является ни числовым, ни логическим: возвращает нет.
Как исправить: замена имеет нулевую длину