الدليل الشامل لمكتبة Matplotlib: من الأساسيات إلى التقنيات المتقدمة
Matplotlib — هي مكتبة بايثون قوية لإنشاء تصورات بيانات ثابتة ومتحركة وتفاعلية. طورها جون هانتر في عام 2003، وأصبحت الأساس لمعظم مكتبات التصور الأخرى في بايثون، ولا تزال المعيار الصناعي لإنشاء رسوم بيانية عالية الجودة.
ما هي Matplotlib ولماذا تحتاجها
Matplotlib هي مكتبة شاملة لإنشاء رسوم بيانية ثنائية وثلاثية الأبعاد بأي درجة من التعقيد. توفر واجهة برمجية مشابهة لـ MATLAB، مما يجعلها مألوفة لمستخدمي هذه البيئة الرياضية الشهيرة.
المزايا الرئيسية لـ Matplotlib:
- الشمولية: تدعم أكثر من 20 نوعًا مختلفًا من الرسوم البيانية
- سهولة التعلم: واجهة برمجية بديهية للبدء السريع
- مرونة التخصيص: تحكم كامل في كل عنصر من عناصر التصور
- التكامل مع NumPy وPandas: توافق تام مع مكتبات البيانات الأساسية
- تنسيقات تصدير متعددة: PNG, SVG, PDF, EPS, PGF وغيرها
- التشغيل عبر المنصات: يعمل على Windows وmacOS وLinux
- مجتمع نشط: تحديثات منتظمة ووثائق شاملة
التثبيت والإعداد الأولي
يتم تثبيت Matplotlib بالطريقة القياسية عبر pip:
pip install matplotlib
للاستخدام في Jupyter Notebook، يُوصى أيضًا بتثبيت:
pip install matplotlib jupyter
الاستيراد القياسي للمكتبة:
import matplotlib.pyplot as plt
import numpy as np # غالبًا ما يُستخدم مع matplotlib
استخدام الاسم المستعار plt هو ممارسة شائعة في مجتمع بايثون.
الهيكلة والمكونات الأساسية
تم بناء Matplotlib على هيكل ثلاثي المستويات:
- طبقة الخلفية (Backend layer): مسؤولة عن رسم الرسوم البيانية
- طبقة الفنان (Artist layer): تدير الكائنات الرسومية
- طبقة البرمجة النصية (Scripting layer): pyplot - واجهة عالية المستوى
العناصر الأساسية للرسم البياني:
- Figure (الشكل): الحاوية العلوية لجميع العناصر
- Axes (المحاور): منطقة رسم الرسم البياني
- Axis (المحور): خطوط الإحداثيات (X, Y, Z)
- Artist (الفنان): جميع العناصر المرئية
إنشاء أول رسم بياني
import matplotlib.pyplot as plt
# بيانات بسيطة
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 5, 3]
# إنشاء الرسم البياني
plt.plot(x, y)
plt.title("أول رسم بياني لي")
plt.xlabel("المحور X")
plt.ylabel("المحور Y")
plt.grid(True)
plt.show()
أنواع الرسوم البيانية واستخداماتها
الرسوم البيانية الخطية (Line Plot)
مثالية لعرض الاتجاهات والتغيرات بمرور الوقت:
# إنشاء البيانات
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
plt.plot(x, y2, label='cos(x)', color='red', linestyle='--')
plt.legend()
plt.title('الدوال المثلثية')
plt.show()
مخططات التشتت (Scatter Plot)
تُظهر العلاقات بين المتغيرات:
# توليد بيانات عشوائية
np.random.seed(42)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
plt.scatter(x, y, alpha=0.6, c='purple')
plt.xlabel('المتغير X')
plt.ylabel('المتغير Y')
plt.title('الارتباط بين X و Y')
plt.show()