Як виправити: довжина естетики має бути 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:

Як виправити: дискретне значення надається в безперервній шкалі
Як виправити: аргумент не є ані числовим, ані логічним: повертає na
Як виправити: Заміна має нульову довжину

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *