مكتبة Matplotlib – الخطوة الثالثة في علم البيانات بالبايثون

8 6٬757

مكتبة Matplotlib هي المكتبة الثالثة التي نتناولها في سلسلة متخصصة بمكتبات علم البيانات. أهلاً بكم في المقال الخامس من سلسلة مقالات مكتبات علم البيانات بالبايثون.

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

للإطلاع على المقالات السابقة:

مكتبات علم البيانات وتعليم الألة في البايثون – 5 مكتبات مشهورة

مكتبة Numpy – الخطوة الأولى في علم البيانات بلغة البايثون

مكتبة Pandas – الخطوة الثانية في علم البيانات بلغة البايثون – الجزء الأول

مكتبة Pandas – الخطوة الثانية في علم البيانات بلغة البايثون – الجزء الثاني

تُقدم لغة البايثون تشكيلة واسعة من المكتبات المُختصة بعرض البيانات مثل مكتبات Seaborn، ggplot، Bokeh، Plotly وأشهر هذه المكتبات هي Matplotlib وهي مختصة برسومات 2D، وعلى الرغم من أن هذه المكتبة هي من أقدم المكتبات المختصة بالإظهار المرئي للبيانات، إلا أنها ما زالت تتربع على عرش المكتبات المُستخدمة في هذا المجال، وتم بناؤها لتكون مُشابهة لدور برنامج Matlab.

نستطيع استخدام مكتبة Matplotlib في برامج البايثون (Scripts)، أو من خلال الطرفية التفاعلية IPython Shell، أو المفكرة التفاعلية Jupyter، بالإضافة لتطبيقات ويب البايثون أو من خلال أُطر الواجهات الرسومية بالبايثون مثل Kivy.

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

تثبيت مكتبة Matplotlib

يوجد لدينا عدة خيارات لتثبيت المكتبة. أول هذه الخيارات وأفضلها هو استخدام توزيعة البايثون Anaconda والتي تحتوي على العديد من المكتبات الخاصة بعلم البيانات ومنها مكتبة Matplotlib.

             اقرأ أيضًا: بايثون اناكوندا – أسهل الطُرق لتثبيت المكتبات العلمية في البايثون

إذا كنت تستخدم نظام لينكس فإنك تستطيع تثبيت المكتبة باستخدام مدير الحزم الخاص بنظامك:

Debian / Ubuntu : sudo apt-get install python-matplotlib

Fedora / Redhat : sudo yum install python-matplotlib

إذا كنت تستخدم نسخة بايثون عادية فيُمكنك استخدام الأداة pip في تثبيت مكتبة Matplotlib عبر تنفيذ الأمر التالي في الطرفية:

pip install matplotlib

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

المنحنى البياني في مكتبة Matplotlib

لنبدأ بشرح كيفية القيام برسم منحنى بياني بسيط يُمثل بعض الأرقام العشوائية. أولًا نستورد وحدة pyplot من مكتبة Matplotlib.

تحتوي pyplot على مجموعة من الوظائف والدوال التي تتشابه مع أوامر برنامج MATLAB في الشكل والغرض. عند استيراد المكتبة من الافضل اعطاء الوحدة مُسمًا سهلًا في الكتابة حتى لا نكتب اسم الوحدة في كل مرة نحتاجها فيه، والشائع هنا أن نسميها ب plt. بعد ذلك نُجهز البيانات التي نريد عرضها في الشكل، وهي عبارة عن مجموعة أرقام عشوائية، ونحفظها في مُتغير باسم data مثلًا:

import matplotlib.pyplot as plt
data = [1, 4, 9, 16, 25]

بعد أن قمنا باستيراد المكتبة Matplotlib، وبعد أن جهزنا البيانات، نستخدم الوظيفة plot لرسم المنحنى ومن ثم نستدعي الوظيفة show لإظهار الشكل البياني:

plt.plot(squares)
plt.show()

 

بعد تنفيذ الشيفرة السابقة في المفكرة التفاعلية Jupyter يظهر لنا الشكل التالي:

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

إعدادات الشكل في مكتبة Matplotlib

لزيادة حجم خط المنحنى في الشكل البياني علينا اضافة الخاصية linewidth كمعامل للدالة plot ونعطي الخاصية القيمة التي نراها مناسبة ولتكن مثلاً 5:

plt.plot(data, linewidth=5)

لإضافة عنوان للشكل البياني نستخدم الدالة title ونمرر لها عنوان الشكل وحجم الخط بالطريقة التالية:

plt.title("Random Numbers", fontsize=24)

لإضافة عنوان للمحور الأفقي أو الرأسي نستخدم الدالتين xlabel و ylabel بالترتيب ونمرر لكل واحدة العنوان وحجم الخط الذي نريد:

plt.xlabel("X axes", fontsize=14)

plt.ylabel("Y axes", fontsize=14)

البيانات في مكتبة Matplotlib

في الأمثلة السابقة استخدمنا الدالة plot ومررنا لها بيانات المحور Y فقط. في هذه الحالة سيتم تحديد بيانات المحور X بناءً على عدد عناصر بيانات Y بحيث تبدأ أول قيمة في بيانات X من العدد 0 حتى  Y_length – 1.

ولكن هذا الأمر في الواقع قليل الحدوث، حيث لابد من تحديد قيم المحور X التي لها بيانات في المحور Y، ويتم ذلك بتمرير بيانات المحور X ثم بيانات المحور Y للدالة plot:

xValues = (2,5,6,7,10,11,13)

plt.plot(xValues ,data, linewidth=3)

لابد أن تكون عدد العناصر في xValues والبيانات في data متساوية وإلا سوف يظهر لك خطأ ValueError عند تنفيذ الشيفرة.

الشكل البياني المنثور Scatter Plot

تتيح لك مكتبة Matplotlib بناء الأشكال البيانية المنثورة، والتي هي عبارة عن نقاط منتشرة في الشكل البياني في مجال محوري X و Y، ويتم ذلك باستخدام الدالة scatter:

plt.scatter(xValues ,data)

لتحديد ححم نقطة البيانات في الشكل البياني نمرر المعامل s للدالة scatter ونعطيه قيمة الحجم الذي نريده:

plt.scatter(xValues, data, s=20)

 

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

أنظر للمثال التالي:

في المثال السابق قمنا بتوليد ألوان عشوائية لكل نقطة في الشكل البياني وذلك باستخدام مصفوفة numpy.

المدرج البياني (Histogram)

يُعتبر المدرج البياني من الأشكال البيانية المشهورة والتي تُستخدم لإظهار معدل تكرار قيم مستمرة Continuous أو قيم منفصلة Discrete، وعادة يُستخدم هذا الشكل في مرحلة التعرف على البيانات وفهما وفي التقارير الإحصائية.

تُقدم مكتبة Matplotlib إمكانية بناء الأشكال البيانية المدرجة عبر الدالة hist. المثال التالي يُوضح كيفية بناء شكل بياني متدرج لمجموعة من الأرقام العشوائية الموزعة توزيعا طبيعيا (أو الغاوسي). نحتاج في البداية استخدام الدالة normal من وحدة random في مكتبة numpy وذلك لتوليد 1000 رقم عشوائي موزعة طبيعيا:

from numpy.random import normal

data = normal(size=1000)

المثال كاملا:

 

 

في هذا المقال تعرفنا على مكتبة Matplotlib وبعض من الأشكال التي تُقدمها في مجال الإظهار المرئي للبيانات مثل المنحنى البياني، الشكل البياني المنثور والشكل البياني المدرج. بالطبع يوجد أشكال اخرى تُقدمها المكتبة ولكن لا يسعنا أن نجمعها في مقال واحد. تستطيع عزيزي القارئ الإطلاع أكثر على ما تقدمه المكتبة بالذهاب للتوثيق الرسمي للمكتبة والموجود في العنوان التالي: matplotlib.org

 

 

8 Comments
  1. إكرام أحمد says

    شكرًا جزيلًا، مدونتك أفادتني كثيرًا، بارك الله فيك وقواك على الخير

    1. ابراهيم البحيصي says

      أهلا وسهلا بكم. بايثونات سعيدة بمروركم ونتمنى لكم وقتًا مفيدًا ونافعا

  2. احمد ماجد says

    شكرا جزيلا على هذه المقالة,بارك الله فيكم.

  3. ميسم says

    متى نستخدم الrug = tru
    وما اهميتها في علم البايانات وتحليلها؟
    ما هي صفحتك على الفيسبوك؟

    1. ابراهيم البحيصي says

      في مكتبة seaborn يٌمكنكم استخدام الدالة rugplot والتي تُظهر عدد العينات لمتغير واحد على طول المحور x، ويكون الإظهار على شكل أعمدة صغيرة.

      يُمكن تفعيل rugplot من خلال rug=True في دالة distplot في مكتبة seaborn والتي تجمع أكثر من شكل bar+kde+rug مما يُعطي تفسيرًا أوضح للشكل البياني والرسومي.

  4. منار محمد says

    شكرا ابراهيم على الشرح المفصل لكل مكتبات المستخدمة في تحليل البيانات وتعلم الالة ..استفدت كثير من موقع بايثونات

  5. yousef says

    ما شاء الله عليك
    شرحك جيد وواضح ومفيد
    من افضل شروحات بايثون على النت
    بالتوفيق دائما

  6. ali helmy says

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

اترك ردًا

Your email address will not be published.