كيفية ترتيب boxplots على المحور السيني في seaborn
يمكنك استخدام الطرق التالية لتغيير ترتيب boxplots على طول المحور السيني في Seaborn:
الطريقة الأولى: فرز قطع الأراضي المربعة باستخدام ترتيب مخصص
sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=[' A ',' B ',' C '])
الطريقة الثانية: فرز المخططات المربعة باستخدام مقياس
group_means=df. groupby ([' group_var '])[' values_var ']. mean (). sort_values (ascending= True ) sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=group_means. index )
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا التالية DataFrame التي توضح النقاط التي سجلها لاعبو كرة السلة من ثلاثة فرق مختلفة:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'], ' points ': [3, 4, 6, 8, 9, 10, 13, 16, 18, 20, 8, 9, 12, 13, 15]}) #view head of DataFrame print ( df.head ()) team points 0 to 3 1 to 4 2 to 6 3 to 8 4 to 9
مثال 1: ترتيب مخططات المربعات باستخدام ترتيب مخصص
يوضح التعليمة البرمجية التالية كيفية إنشاء boxplots لتصور توزيع النقاط لكل فريق وترتيب boxplots بالترتيب التالي بناءً على اسم الفريق: C، A، B.
import seaborn as sns
#create boxplots with custom order
sns. boxplot (x=' team ', y=' points ', data=df, order=[' C ', ' A ', ' B '])
لاحظ أن boxplots مرتبة على طول المحور السيني بالترتيب الدقيق الذي حددناه.
المثال 2: ترتيب قطع الأراضي باستخدام مقياس
يوضح التعليمة البرمجية التالية كيفية إنشاء boxplots لتصور توزيع النقاط لكل فريق وترتيب boxplots بترتيب تصاعدي بناءً على متوسط النقاط المسجلة لكل فريق:
import seaborn as sns
#calculate mean points by team
mean_by_team = df. groupby ([' team '])[' points ']. mean (). sort_values (ascending= True )
#create boxplots ordered by mean points (ascending)
sns. boxplot (x=' team ', y=' points ', data=df, order=mean_by_team. index )
لاحظ أنه يتم ترتيب boxplots على طول المحور السيني بناءً على متوسط قيمة النقطة لكل فريق بترتيب تصاعدي.
لعرض boxplots بترتيب تنازلي، ما عليك سوى تحديد ascending=False في الدالة sort_values() :
import seaborn as sns
#calculate mean points by team
mean_by_team = df. groupby ([' team '])[' points ']. mean (). sort_values (ascending= False )
#create boxplots ordered by mean points (descending)
sns. boxplot (x=' team ', y=' points ', data=df, order=mean_by_team. index )
يتم الآن ترتيب Boxplots على طول المحور السيني استنادًا إلى متوسط قيمة النقطة لكل فريق بترتيب تنازلي.
ملاحظة : لفرز boxplots بناءً على مقياس مختلف (على سبيل المثال، الوسيط)، ما عليك سوى تحديد هذا المقياس بعد وظيفة groupby() في الكود أعلاه.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية أداء الوظائف الشائعة الأخرى في Seaborn:
كيفية إزالة القيم المتطرفة من Seaborn boxplot
كيفية إنشاء boxplot متعدد الأعمدة في Seaborn