كيفية الإصلاح: يجب أن يكون الطول الجمالي 1 أو نفس البيانات.
الخطأ الذي قد تواجهه في R هو:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
يحدث هذا الخطأ عند محاولة تحديد ألوان التعبئة لاستخدامها في مخطط ggplot2، ولكن عدد الألوان التي حددتها لا يساوي 1 أو لا يساوي العدد الإجمالي للكائنات المراد تعبئتها.
يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أننا نعمل مع مجموعة بيانات 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 مخططات مربعة) ولكننا قدمنا لونين فقط لوسيطة الحشو .
كيفية اصلاح الخطأ
هناك طريقتان لإصلاح هذا الخطأ:
الطريقة الأولى: استخدم لونًا واحدًا فقط في وسيطة التعبئة
يمكننا اختيار استخدام لون واحد فقط في وسيطة التعبئة:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))
هذا يسمح لنا بملء كل قطعة مربعة بنفس اللون.
الطريقة الثانية: استخدم نفس عدد الألوان مثل عدد boxplots
يمكننا أيضًا تحديد خمسة ألوان لاستخدامها، حيث يتوافق هذا مع عدد boxplots التي سنقوم بإنشائها:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))
لا نتلقى أي أخطاء لأن عدد الألوان التي قدمناها يطابق عدد boxplots.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح: القيمة المنفصلة المقدمة على نطاق مستمر
كيفية الإصلاح: الوسيطة ليست رقمية ولا منطقية: تُرجع na
كيفية الإصلاح: الاستبدال له طول صفر