الرسوم البيانية الاساسية في البايثون

تهدف هذه المقالة إلى استعراض بعض أنواع الرسومات البيانيةالاساسية التي تستخدم في عرض البيانات، وسنركز بشكل خاص على مكتبة matplotlib في لغة البرمجة Python واستخدامها في إنشاء مجموعة متنوعة من الرسوم البيانية. سنتحدث في هذه المقالة عن الأنواع الأساسية التالية: الرسوم المساحية (Area plots)، رسوم توزيع التكرار (الهيستغرام) (Histogram plots)، والمخطط الشريطي (Bar chart).

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

دعنا الآن ننتقل إلى استعراض مكتبة matplotlib واستخدامها في إنشاء الرسوم البيانية المذكورة.

مكتبة Matplotlib: تعتبر مكتبة matplotlib من أهم وأشهر مكتبات الرسوميات في لغة البرمجة Python. توفر هذه المكتبة واجهة برمجة التطبيقات (API) لإنشاء مجموعة كبيرة من الرسومات البيانية بطرق متعددة وسهلة. وإن استخدام matplotlib لا يتطلب مهارات متقدمة في الرسوميات، مما يجعلها مفيدة ومناسبة للمبتدئين والمحترفين على حد سواء.

الرسوم المساحية (Area plots): تستخدم الرسوم المساحية لتوضيح التغير في القيم النسبية لمجموعة من الفئات عبر الزمن أو مقارنة مع تغيير أي متغير آخر. حيث يتم تمثيل كل فئة على شكل منطقة ملونة تشغل مساحة بين الخط الذي يثل تغير قيمة الفئة والمحور الأفقي. يمكن استخدام الرسوم المساحية لعرض تطور القيم على مدار فترة زمنية محددة أو للمقارنة بين مجموعات متعددة.

أمثلة: سنقوم الآن بتقديم بعض الأمثلة على الرسوم المساحية باستخدام مكتبة pandas:

import pandas as pd
import matplotlib.pyplot as plt

# سنستخدم البيانات التالية كمثال
data = {'category 1': [10, 20, 30, 40],
        'category 2': [15, 25, 35, 45],
        'category 3': [5, 15, 25, 35]}
df = pd.DataFrame(data)
print (df.head())


   category 1  category 2  category 3
0          10          15           5
1          20          25          15
2          30          35          25
3          40          45          35

قمنا في الكود السابق انشاء مجموعة بيانات لاستخدامها بانشاء الرسم البياني وهي ثلاثة اعمدة من البيانات لكل منها قيم متزايد.
الآن سنقوم بانشاء الرسم البياني المساحي لها :

# إنشاء الرسم البياني
df.plot(kind = "area")

# تخصيص عنوان الرسم واسماء المحاور
plt.title('example for Area plot')
plt.xlabel('categories')
plt.ylabel('values')

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

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

رسوم توزيع التكرار (Histogram plots): تستخدم رسوم توزيع التكرار لتوضيح توزيع البيانات الكمية وكيفية توزيعها على مجموعات. اي بمعنى مقدار تكرار كل مجال من القيم حيث يتم تقسيم مجال القيم إلى فئات وتمثيل عدد تكرار قيم كل فئة باستخدام العمود العمودي. توفر رسوم توزيع التكرار نظرة عامة على شكل التوزيع وأين تتركز القيم الرئيسية.

مثال: سنقوم الآن بتقديم مثال على رسوم توزيع التكرار باستخدام مكتبة pandas:

import pandas as pd
import matplotlib.pyplot as plt

# البيانات المستخدمة في الأمثلة
data = [5,4, 30, 3, 16, 5.5, 7, 10, 25, 43, 12, 35, 15, 20, 25, 40, 30, 21]
df = pd.DataFrame(data)
bin_edges = range(0, 50, 5)

# إنشاء رسم توزيع التكرار
df.plot(kind = "hist", xticks = bin_edges, rwidth=0.9)

# تخصيص رسم توزيع التكرار
plt.title('example for histagram ')
plt.xlabel('values')
plt.ylabel('frequency')

# عرض رسم توزيع التكرار
plt.show()

قمنا في المثال السابق بانشاء مجموعة بيانات من ارقام عشوائية لاستخدامها في انشاء الرسم البياني
تم أمرار معاملات جديدة في للدالة plot في هذا المثال :
معاملة xticks ويتم من خلالها امرار سلسلة من الارقام التي تمثل حدودو المجالات التي سيتم تقسيم البيانات لها
معاملة rwidth والتي تأخذ قيمة عشرية من 0 الى 1 والتي تمثل عرض العمود المرسوم في المخطط

المخطط الشريطي (Bar chart): تستخدم المخططات الشريطية لعرض المقارنات بين قيم المتحولات المختلفة أو المجموعات. يتم تمثيل كل قيمة بعمود عمودي يمتد من القاعدة إلى القيمة المقابلة. يمكن استخدام المخطط الشريطي لعرض العلاقات النسبية والفروق بين القيم في مجموعة معينة.

مثال: سنقوم الآن بتقديم مثال على المخطط الشريطي باستخدام مكتبة pandas :
في المثال التالي سنمثل عدد اهداف ميسي في المواسم الاخيرة مع برشلونة في الدوري الاسباني


data = {"season" : ["2017-2018", "2018-2019","2019-2020","2020-2021"], "Goals" : [34, 36, 25, 30]}
df_messi = pd.DataFrame(data)
df_messi.index = df_messi["season"]
df_messi.drop("season",axis = "columns", inplace = True)
df_messi.head()
# إنشاء الرسم البياني
df.plot(kind = "bar")

# تخصيص عنوان الرسم واسماء المحاور
plt.title('example for bar plot')
plt.xlabel('categories')
plt.ylabel('values')

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

قبل ان نختم هذه المقالة لابد من ذكر بعض الخيارات لتخصيص الرسوم البيانية السابقة :
مثل معاملة color لتحديد اللون
معاملة figsize لتحديد مساحة الرسم البياني
معاملة alpha لتحديد درجة شفافية الرسم البياني
سنقوم باستخدام هذه المعاملات على الرسم السابق

# إنشاء الرسم البياني
df.plot(kind = "bar", color = "red", figsize=(20, 10), alpha = 0.7)

# تخصيص عنوان الرسم واسماء المحاور
plt.title('example for bar plot')
plt.xlabel('categories')
plt.ylabel('values')

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