شريط البحر Seaborn: دليل كامل

تحويل البيانات إلى تصورات يسهل الفهم يساعد في تقديم رؤى واضحة وقابلة للتنفيذ. تبرز مخططات الأعمدة في مكتبة Seaborn في تقديم البيانات الفئوية من خلال رسومات إحصائية أنيقة. تجمع المكتبة بين مرونة Matplotlib وقوة pandas، مما يجعلها مثالية لكل من التحليلات السريعة والتصورات الجاهزة للنشر.

توفر مخططات الأعمدة في Seaborn ميزات أساسية لتحليل البيانات – من المقارنات الأساسية إلى التمثيلات الإحصائية المتقدمة. تتعامل مع المهام الشائعة مثل مقارنة مقاييس المبيعات عبر المناطق، وتحليل ردود الاستطلاعات، وتصوير نتائج التجارب.

إن بناء الجملة البسيط للمكتبة والوظائف الإحصائية المدمجة تجعلها قيمة لكل من المبتدئين والممارسين ذوي الخبرة في مجال البيانات.

في هذه المقالة، سنلقي نظرة على أساسيات مخطط الأعمدة في Seaborn، وإنشاء مخططات أساسية مع أمثلة على الشيفرة، وتعزيز المخططات من خلال التخصيص، وتنفيذ الميزات المتقدمة، واستكشاف التطبيقات العملية.

لمعرفة المزيد حول تصور البيانات باستخدام Seaborn، تحقق من مقدمة في تصور البيانات باستخدام Seabornدورة.

أساسيات مخطط الأعمدة في Seaborn

قبل أن نتعمق في مخططات الأعمدة، دعنا نلقي نظرة على بعض أساسيات Seaborn، ومميزاته لمخططات الأعمدة، وكيفية إعداد بيئة البرمجة.

ما هو Seaborn؟

سيبورن هي مكتبة بصرية بيانات إحصائية بلغة بايثون مبنية على قمة مكتبة ماتفلوطليب. تتخصص في إنشاء الرسوم البيانية الإحصائية الجذابة والمفيدة مع الحد الأدنى من الكود. تتكامل المكتبة بشكل وثيق مع إطارات بيانات باندا، مما يجعلها فعالة بشكل خاص في سير العمل لتحليل البيانات.

توفر واجهة عالية المستوى لرسم الرسوم الجذابة بينما تتعامل مع العديد من تفاصيل التنسيق تلقائيًا.

تتفوق المكتبة في ثلاثة جوانب رئيسية:

  • تتكامل بسلاسة مع إطارات بيانات باندا، مما يجعل معالجة البيانات مباشرة.
  • يأتي مع وظائف إحصائية مدمجة، مما يلغي الحاجة لإجراء حسابات منفصلة
  • يطبق سمات وألوان احترافية بشكل افتراضي

على سبيل المثال، بينما تتطلب مكتبة Matplotlib العديد من الأسطر من التعليمات البرمجية لإنشاء تصور إحصائي أساسي، يمكن لمكتبة Seaborn إنجاز نفس المهمة باستدعاء دالة واحدة فقط.

بالنسبة لمخططات الأعمدة بشكل محدد، تضيف مكتبة Seaborn ميزات قوية مثل حساب المتوسط تلقائيًا، فترات الثقة، والتعامل المتقدم مع المتغيرات الفئوية – وهي إمكانيات تتطلب كتابة كود إضافي كبير في مكتبة Matplotlib العادية.

لماذا نستخدم مخططات الأعمدة؟

تقدم الرسوم البيانية الشريطية البيانات التصنيفية من خلال أشرطة عمودية أو أفقية، حيث يمثل الطول قيمة عددية. وهذا يجعلها مثالية لمقارنة القيم عبر مجموعات أو فئات مختلفة. في تحليل البيانات، تساعد الرسوم البيانية الشريطية في تصور نتائج الاستطلاعات، وحصص السوق، ومؤشرات الأداء، وتوزيعات المبيعات.

تشمل المزايا الرئيسية:

  • مقارنة واضحة للكميات عبر الفئات
  • ميزات إحصائية مدمجة (المتوسط، الوسيط، فترات الثقة)
  • تمثيل فعال للبيانات المجمعة
  • عناصر بصرية بسيطة لكنها مفيدة
  • خيارات تخصيص سهلة للعروض التقديمية الاحترافية

إعداد سريع

للشروع في إنشاء مخططات الأعمدة باستخدام Seaborn، سنحتاج إلى إعداد بيئة Python الخاصة بنا. إليك كيفية البدء:

أولاً، دعنا نقوم بتثبيت الحزم المطلوبة كما هو موضح أدناه:

pip install seaborn pandas numpy

الآن لدينا جميع أدوات التصور جاهزة للاستخدام. دعنا نستورد المكتبات التي سنحتاجها، كما هو موضح أدناه:

# لإنشاء تصورات إحصائية import seaborn as sns # لمعالجة البيانات وتحليلها import pandas as pd # للعمليات العددية import numpy as np

يمكننا تحسين مظهر مخططاتنا ببعض إعدادات النمط، كما يلي:

# نمط أبيض نظيف sns.set_style("white")

نمط white يزيل خطوط الشبكة وسيجعل المخططات تبدو جيدة على معظم الشاشات. في الأقسام التالية، سننظر في إنشاء مخططات الأعمدة وتعزيزها.

إنشاء مخططات أعمدة أساسية باستخدام Seaborn

الرسم البياني الشريطي مثالي لتصور العلاقات بين المتغيرات الفئوية والعددية. يظهر تقديرات النقاط (مثل المتوسط أو الوسيط) وعدم اليقين حول تلك التقديرات من خلال أشرطة الخطأ. دعنا نلقي نظرة على الصياغة الأساسية لرسم الشريط في seaborn.

الصياغة والمعلمات

تقدم sns.barplot() وظيفة في Seaborn طريقة بسيطة لإنشاء الرسوم البيانية الشريطية الإحصائية. يبدو الهيكل الأساسي لوظيفة .barplot() كما هو موضح أدناه:

sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )

توفر لنا هذه المعلمات التحكم فيما البيانات التي نعرضها وكيفية عرضها. يأخذ معلمة data إطار البيانات الخاص بك، بينما x و y تحددان الأعمدة التي يجب استخدامها للفئات والقيم. تسمح لك معلمة estimator باختيار الوظيفة الإحصائية التي ترغب في تطبيقها (المتوسط بشكل افتراضي)، و errorbar تتحكم في كيفية عرض عدم اليقين. يمكنك أيضًا التبديل بين الاتجاهات الرأسية والأفقية باستخدام معلمة orient.

الآن، دعونا نلقي نظرة على كيفية إنشاء مخططات شريطية فعالة باستخدام مجموعة البيانات المدمجة في Seaborn، والتي تحتوي على معلومات حول فواتير المطاعم والإكراميات.

مثال: تصور مجموعة بيانات بسيطة

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

# استيراد المكتبات المطلوبة وتحميل مجموعة البيانات import seaborn as sns tips = sns.load_dataset("tips") # إنشاء مخطط شريطي أساسي يظهر متوسط الإكراميات حسب اليوم sns.barplot(data=tips, x="day", y="tip")

الناتج:

أنشأ كودنا التصور أعلاه حيث يمثل كل شريط متوسط مبلغ الإكرامية ليوم مختلف من أيام الأسبوع. توضح ارتفاعات كل شريط قيمة الإكرامية المتوسطة، بينما تشير الخطوط السوداء (أشرطة الخطأ) إلى فترة الثقة 95% – مما يمنحنا نظرة على كل من مبلغ الإكرامية النموذجي ومدى تباينه.

يمكننا أيضًا فحص أنماط الإكراميات عبر أوقات الوجبات المختلفة:

# إنشاء مخطط شريطي يظهر متوسط الإكراميات حسب وقت اليوم sns.barplot(data=tips, x="time", y="tip")

الناتج:

يكشف هذا المخطط عن الفرق في سلوك الإكراميات بين خدمة الغداء والعشاء. يمثل ارتفاع كل عمود متوسط مبلغ الإكرامية في ذلك الوقت من اليوم، مع عرض أعمدة الخطأ التباين في سلوك الإكرامية. يجعل هذا النوع من التصوير من السهل اكتشاف الأنماط ومقارنة المجموعات بسرعة.

توفر هذه الرسوم البيانية الأساسية أساسًا لتصورات أكثر تعقيدًا. في القسم التالي، سنرى كيف يمكن تحسين هذه الرسوم باستخدام الألوان، والتجمعات، والتخصيصات الأخرى لإنشاء تصورات أكثر إفادة وجاذبية بصريًا.

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

يمكن أن تساعد الإضافات المرئية إلى رسومنا البيانية في جعل بياناتنا أكثر جاذبية وأسهل في الفهم. دعونا نرى الطرق المختلفة لتخصيص الرسوم البيانية باستخدام مجموعة بيانات الإكراميات.

إضافة الألوان إلى الرسوم البيانية

يقدم Seaborn عدة طرق لإضافة اللون إلى الرسوم البيانية، مما يجعلها أكثر جاذبية بصريًا وإعلامًا. يمكننا استخدام لون واحد لجميع الأعمدة أو إنشاء مجموعات ملونة،

يحدد معلمة color لونًا واحدًا لجميع الأعمدة، بينما تتيح لك palette تحديد نظام ألوان عندما تحتوي بياناتك على مجموعات متعددة. يأتي Seaborn مع العديد من لوحات الألوان المدمجة التي تعمل بشكل جيد مع أنواع مختلفة من البيانات.

يمكننا إنشاء مخطط شريطي بسيط بلون واحد باستخدام خاصية color كما هو موضح أدناه:

# تحميل مجموعة بيانات النصائح إذا لم تكن قد قمت بذلك بالفعل import seaborn as sns tips = sns.load_dataset("tips") # مخطط شريطي بلون واحد sns.barplot(data=tips, x="day", y="tip", color="skyblue")

الإخراج:

يمكننا إنشاء مخطط شريطي بألوان متعددة باستخدام خاصية palette كما هو موضح أدناه:

# تحميل مجموعة بيانات النصائح إذا لم تكن قد قمت بذلك بالفعل import seaborn as sns tips = sns.load_dataset("tips") # باستخدام لوحة ألوان مختلفة sns.barplot(data=tips, x="day", y="tip", palette="Set2")

الإخراج:

مخطط شريطي من Seaborn مع أعمدة متعددة

واحدة من أقوى ميزات مخططات Seaborn الشريطية هي القدرة على عرض العلاقات بين متغيرات متعددة باستخدام خاصية hue مما ينشئ أشرطة مجمعة تسهل المقارنات.

دعونا نقارن النصائح عبر كلا اليومين وأوقات الوجبات باستخدام hue المعامل كما هو موضح أدناه:

# قم بتحميل مجموعة بيانات النصائح إذا لم تكن قد قمت بذلك بالفعل import seaborn as sns tips = sns.load_dataset("tips") # أنشئ رسمًا بيانيًا مجمعًا يوضح النصائح حسب اليوم والوقت sns.barplot( data=tips, x="day", y="tip", hue="time" )

الإخراج:

يوضح الرسم البياني أعلاه عمودين – واحد للغداء وواحد للعشاء. تساعدنا هذه المجموعة في رؤية كيفية اختلاف النصائح ليس فقط حسب اليوم، ولكن أيضًا كيف تختلف بين أوقات الوجبات.

إنشاء رسم بياني مكدس باستخدام seaborn

يعتبر الرسم البياني المكدس ممتازًا لعرض تركيب الفئات المختلفة. بينما لا تحتوي Seaborn على وظيفة رسم بياني مكدس مباشرة، يمكننا دمجها مع matplotlib لإنشاء تصورات مكدسة فعالة.

تستفيد هذه الطريقة من الوظائف الإحصائية لـ Seaborn بينما تستخدم قدرات التكديس في matplotlib. كمثال، في مجموعة بيانات النصائح، دعونا نرى كيف يتم توزيع النصائح بين المدخنين وغير المدخنين عبر أيام مختلفة.

لنبدأ باستيراد المكتبات الضرورية لتصورنا:

# استيراد المكتبات المطلوبة import seaborn as sns import matplotlib.pyplot as plt import numpy as np

الآن سنقوم بتحميل مجموعة البيانات الخاصة بنا التي تحتوي على معلومات نصائح المطاعم:

# تحميل مجموعة بيانات النصائح tips = sns.load_dataset("tips")

سنقوم بإنشاء شكل بأبعاد مناسبة للتصور الخاص بنا:

# إنشاء الشكل والمحور plt.figure(figsize=(10, 4))

بعد ذلك، سنحسب متوسط البقشيش للمدخنين وغير المدخنين عبر أيام مختلفة:

# حساب القيم للتكديس # تصفية المدخنين، تجميع حسب اليوم والحصول على متوسط البقشيش smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # تصفية غير المدخنين، تجميع حسب اليوم والحصول على متوسط البقشيش non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

بعد ذلك، سنقوم بإعداد المعلمات الأساسية للأعمدة المكدسة كما هو موضح أدناه:

# رسم الأعمدة المكدسة باستخدام matplotlib days = smoker_means.index width = 0.8

الآن، سنقوم بإنشاء الطبقة السفلية من أعمدتنا المكدسة لغير المدخنين:

# إنشاء الأعمدة السفلية (غير المدخنين) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

سنضيف الطبقة العليا لبقشيش المدخنين:

# إنشاء الأعمدة العليا (المدخنين) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

دعونا نضع نمطًا نظيفًا بدون خطوط الشبكة باستخدام تنسيق seaborn:

# إضافة تنسيق Seaborn sns.set_style("white")

أخيرًا، سنعرض رسم الأعمدة المكدسة المكتمل:

# عرض الرسم plt.show()

الناتج:

يظهر الرسم الناتج متوسط البقشيش من المدخنين مكدسًا فوق بقشيش غير المدخنين لكل يوم، مما يسهل مقارنة إجمالي البقشيش ومساهمة كل مجموعة.

تسمح لنا هذه الطريقة بما يلي:

  • الحفاظ على أسلوب visual الجذاب لـ Seaborn
  • تكديس أعمدتنا لإظهار التركيب
  • الحفاظ على الطبيعة الإحصائية لتصورنا
  • استخدام لوحات الألوان الخاصة بـ Seaborn للتناسق

ميزات ونصائح متقدمة

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

توضيح الرسوم البيانية للأعمدة

إضافة تسميات القيم إلى الأعمدة يمكن أن تجعل التصورات الخاصة بك أكثر دقة وإفادة. دعونا ننشئ رسمًا بيانيًا للأعمدة يُظهر قيم الإكراميات الدقيقة فوق كل عمود.

أولاً، دعونا نستورد المكتبات الخاصة بنا ونجهز بياناتنا:

# استيراد المكتبات المطلوبة import seaborn as sns import matplotlib.pyplot as plt # تحميل وتحضير مجموعة بيانات الإكراميات tips = sns.load_dataset("tips")

إنشاء الرسم البياني للأعمدة مع القيم الإحصائية:

# إنشاء الرسم البياني الأساسي ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

بعد ذلك، سنضيف تسميات القيم إلى أعلى كل عمود، كما هو موضح أدناه:

# الحصول على ارتفاع كل عمود bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # إضافة تعليقات نصية على أعلى كل عمود for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )

الإخراج:

إدارة المحاور والمقاييس

عند إنشاء الرسوم البيانية للأعمدة، يساعد ضبط المحاور في جعل بياناتك أكثر قابلية للقراءة وتأثيرًا. دعونا نرى كيفية تخصيص حدود المحاور، والتسميات، والعلامات باستخدام وظائف سيبورن.

أولاً، سنقوم باستيراد المكتبة الخاصة بنا وتحميل مجموعة البيانات التي نحتاجها لتصورنا:

# استيراد المكتبات المطلوبة import seaborn as sns # تحميل وتحضير مجموعة بيانات الإكراميات tips = sns.load_dataset("tips")

يمكننا إنشاء رسم بياني عمودي مع تسميات مخصصة وترتيب للأيام. order يتيح لنا تحديد كيف نريد ترتيب أيامنا على المحور السيني:

# إنشاء رسم بياني عمودي مع تسميات المحاور ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

لجعل رسمنا أكثر معلوماتية، يمكننا إضافة تسميات وصفية لكلا المحورين باستخدام set الطريقة:

# تعيين تسميات وصفية للمحاور ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

لتحسين تصورنا، يمكننا تعيين حدود معينة وعلامات. ylim يتحكم في نطاق المحور الصادي، بينما xticks و yticks يتيحان لنا تحديد بالضبط أين نريد ظهور علاماتنا:

# تخصيص حدود المحاور والعلامات ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

لدمج كل هذه التغييرات في الرسم البياني، نحتاج إلى تشغيلها دفعة واحدة وليس واحدة تلو الأخرى. الكود بالكامل موضح أدناه:

# استيراد المكتبات المطلوبة import seaborn as sns # تحميل وإعداد مجموعة بيانات النصائح tips = sns.load_dataset("tips") # إنشاء رسم بياني عمودي مع تسميات المحاور ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # تعيين تسميات وصفية للمحاور ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # تخصيص حدود المحاور وعلامات الت ticks ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

الإخراج:

الرسم الناتج يظهر النصائح حسب اليوم مع تسميات واضحة، مقاييس مناسبة، وعلامات ت ticks منظمة جيدًا، مما يسهل قراءة البيانات وتفسيرها.

دمج أشرطة الخطأ

تساعد أشرطة الخطأ في تصور عدم اليقين أو التباين في بياناتك. تقدم Seaborn عدة خيارات لإضافة أشرطة الخطأ إلى الرسوم البيانية العمودية، بما في ذلك فترات الثقة والانحراف المعياري.

أولاً، سنقوم باستيراد المكتبة الخاصة بنا وتحميل مجموعة البيانات التي نحتاجها لرسم البيانات:

# استيراد المكتبات المطلوبة import seaborn as sns # تحميل وتحضير مجموعة بيانات الإكراميات tips = sns.load_dataset("tips")

بشكل افتراضي، يعرض Seaborn فترات الثقة بنسبة 95%. يمكننا تعديل ذلك باستخدام معلمة ‘errorbar’ لعرض أنواع مختلفة من التقديرات الإحصائية:

# إنشاء مخطط عمودي مع فترات الثقة ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

الناتج:

يمكننا أيضًا عرض الانحراف المعياري بدلاً من فترات الثقة، مما يساعد على تصور انتشار بياناتنا:

# الانتقال إلى الانحراف المعياري ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )

الناتج:

في بعض الأحيان، قد نرغب في إزالة أشرطة الخطأ تمامًا للحصول على مظهر أنظف:

# إنشاء مخطط عمودي بدون أشرطة خطأ ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

الإخراج:

تظهر المخططات الناتجة كيف يمكن أن تساعدنا أنواع أشرطة الخطأ المختلفة في فهم التباين في بيانات النصائح لدينا عبر أيام الأسبوع المختلفة.

تطبيقات عملية لمخططات Seaborn العمودية

تعتبر المخططات العمودية أدوات متعددة الاستخدامات في تصور البيانات، وخصوصًا مفيدة عندما تحتاج إلى مقارنة القيم عبر فئات مختلفة أو تحليل متغيرات متعددة في وقت واحد. دعونا نلقي نظرة على تطبيقين شائعين حيث تتألق مخططات Seaborn العمودية.

تتميز مخططات الأعمدة في Seaborn بالكفاءة في كشف الأنماط في البيانات الفئوية، خاصة عند تحليل المقاييس عبر مجموعات مختلفة. من خلال إظهار كل من الميل المركزي وعدم اليقين، تساعد مخططات الأعمدة في تحديد الفروقات الهامة بين الفئات.

هذا يجعلها مثالية لتحليل سلوك العملاء، أداء المنتجات، أو استجابات الاستطلاعات حيث تحتاج إلى مقارنة القيم عبر مجموعات مميزة.

مقارنة عدة متغيرات

عندما تشمل تحليلاتنا عوامل متعددة، يمكن لمخططات الأعمدة في Seaborn أن تبرز العلاقات المعقدة في بياناتنا. يساعد استخدام ميزات مثل التجميع (اللون) أو التكديس في مقارنة المتغيرات المختلفة في آن واحد، مما يسهل اكتشاف الأنماط والتفاعلات بين جوانب مختلفة من بياناتنا.

الخاتمة

تضرب الرسوم البيانية الشريطية في Seaborn التوازن الصحيح بين البساطة والرؤية الإحصائية. إن بناء الجملة البديهي للمكتبة مع ميزات إحصائية قوية يجعلها أداة أساسية لتصور البيانات. من المقارنات الأساسية بين الفئات إلى التصورات المتقدمة المجمعة، تساعد الرسوم البيانية الشريطية في كشف أنماط البيانات والتواصل بها بشكل فعال.

هل أنت مستعد للارتقاء بمهاراتك في تصور البيانات؟ إليك ما يجب استكشافه بعد ذلك:

هل ترغب في رفع مهاراتك في Seaborn إلى المستوى التالي؟ انضم إلى دورة التصوير البياني المتوسطة باستخدام Seaborn .

Source:
https://www.datacamp.com/tutorial/seaborn-barplot