البرمجة

تحسين تصميم الرسوم البيانية باستخدام Seaborn في Python

عند التعامل مع تصميم الرسوم البيانية في مكتبة Seaborn بلغة Python، قد يواجه المستخدم تحديات في التحكم في العناصر المعروضة في الأسطورة (legend)، خاصةً عند استخدام توليفة من الـ boxplot والـ stripplot. يظهر الرمز التالي محاولة لرسم الرسم البياني المرغوب:

python
import matplotlib.pyplot as plt import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, jitter=True, palette="Set2", split=True, linewidth=1, edgecolor='gray') sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set2", fliersize=0) plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

وكما يظهر في الصورة المُرفقة، يظهر تكرار للأسطورة مما يبدو لافتًا للانتباه وقد يكون غير مرغوب فيه. يحتاج المستخدم إلى حلاً لتجاوز هذه المشكلة وتحقيق تصميم أنيق للرسم البياني.

لحل هذه المشكلة، يُفضل اللجوء إلى استخدام الدالة get_legend() التي توفرها مكتبة Seaborn. يمكن استخدام هذه الدالة للتحكم في عناصر الأسطورة. فيما يلي التعديل الذي يُمكن استخدامه لحذف الأسطورة المتعلقة بـ stripplot:

python
import matplotlib.pyplot as plt import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") ax = sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, jitter=True, palette="Set2", split=True, linewidth=1, edgecolor='gray') sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set2", fliersize=0) # حذف الأسطورة المتعلقة بـ stripplot handles, labels = ax.get_legend_handles_labels() ax.legend(handles[:2], labels[:2], title="") plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

باستخدام get_legend()، يمكن الوصول إلى العناصر المتعلقة بالـ stripplot ومن ثم حذفها من الأسطورة الرئيسية. النتيجة المتوقعة هي رسم بياني يحتوي على أسطورة واحدة فقط تتعلق بالـ boxplot، مما يعزز الوضوح والجاذبية البصرية للمخطط.

المزيد من المعلومات

تعتبر مكتبة Seaborn في Python أحد أدوات رسم الرسوم البيانية المتقدمة، والتي تعتمد على Matplotlib. تُستخدم Seaborn لتحسين تصميم وشكل الرسوم البيانية بطريقة تجعل عملية رسمها أكثر سهولة وجاذبية. الرمز البرمجي الذي تم تقديمه يوفر نظرة على كيفية استخدام توليفة من boxplot و stripplot في Seaborn.

تعتبر الدالة load_dataset المستخدمة لتحميل مجموعة البيانات “tips” جزءًا من العديد من مجموعات البيانات المُدمجة في Seaborn، والتي تسهل على المستخدمين استخدام أمثلة عملية وواقعية في تحليل البيانات.

في الرمز البرمجي، يتم استخدام stripplot لرسم نقاط البيان المتناثرة، وذلك باستخدام المتغيرات “day” و “total_bill”، مع تلوين حسب متغير “smoker”. يتم تحسين تصميم الرسم البياني باستخدام خيارات مثل “jitter” لتفادي التراكم، و”split” لتجنب تشابك الألوان.

من ناحية أخرى، تُستخدم boxplot لرسم مربع الرسم البياني الذي يظهر الربع الأول والثالث والوسيط، مع تلوينه أيضًا حسب متغير “smoker”. يتم إخفاء القيم الشاذة باستخدام “fliersize”.

مشكلة الأسطورة المكررة تم حلها باستخدام دالة get_legend() التي توفرها Seaborn. تم استخدام هذه الدالة لحذف الأسطورة المتعلقة بـ stripplot، مما أسفر عن تحسين في تصميم الرسم البياني.

يُشجع المستخدم على استكشاف المزيد من خيارات ووظائف Seaborn لتحسين تجربة رسم الرسوم البيانية وتحليل البيانات بشكل فعّال.

زر الذهاب إلى الأعلى