修正方法: 外観は長さ 1 であるか、データと同じである必要があります。
R で発生する可能性のあるエラーは次のとおりです。
Error: Aesthetics must be either length 1 or the same as the data (5): fill
このエラーは、ggplot2 プロットで使用する塗りつぶしの色を指定しようとしたが、指定した色の数が 1 に等しくない、または塗りつぶされるオブジェクトの総数に等しくない場合に発生します。
次の例は、このエラーを実際に修正する方法を示しています。
エラーを再現する方法
airqualityという組み込みの R データセットを使用しているとします。
#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 つの箱ひげ図を作成します)、エラーが発生しますが、パディング引数には 2 色しか指定していません。
エラーを修正する方法
このエラーを修正するには 2 つの方法があります。
方法 1: fill 引数で 1 つの色のみを使用する
fill 引数で 1 つの色のみを使用することを選択できます。
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))

これにより、各箱ひげ図を同じ色で塗りつぶすことができます。
方法 2: 箱ひげ図の数と同じ数の色を使用する
作成する箱ひげ図の数に対応するため、使用する 5 つの色を指定することもできます。
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))

提供した色の数が箱ひげ図の数と一致しているため、エラーは発生しません。
追加リソース
次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。
修正方法: 連続スケールで提供される離散値
修正方法: 引数が数値でも論理でもない: na を返します
修正方法: 置換の長さがゼロです