مقدمة إلى Matplotlib Subplot في بايثون
تعتبر مكتبة Matplotlib واحدة من أقوى وأشهر المكتبات في بايثون لإنشاء الرسوم البيانية والتصوير البياني. من بين الوظائف المهمة التي تقدمها هذه المكتبة هي القدرة على إنشاء “Subplots”، والتي تتيح للمستخدمين عرض عدة رسوم بيانية في نفس الشكل، مما يساعد في مقارنة البيانات بشكل مرئي فعال. تعتبر Subplots جزءًا من الوحدة الفرعية pyplot، وتتيح للمستخدمين تقسيم الشكل إلى شبكة من الصفوف والأعمدة، حيث يمكن لكل موقع في الشبكة أن يحتوي على رسم بياني منفصل.
استخدام Subplots يمكن أن يكون مفيدًا في العديد من السيناريوهات، مثل تحليل مجموعات بيانات متعددة أو مقارنة نتائج تجارب مختلفة. بالإضافة إلى ذلك، فهي توفر مرونة في تصميم العروض التقديمية، مما يجعل من السهل تخصيص حجم وموقع كل رسم بياني داخل الشكل.
كيفية إنشاء Subplots باستخدام Matplotlib
لإنشاء Subplots في Matplotlib، يمكنك استخدام الدالة `subplot()` أو الدالة `subplots()`. الدالة الأولى تمكنك من تحديد موقع كل رسم بياني داخل شبكة باستخدام ثلاثة أرقام، حيث يمثل الرقم الأول عدد الصفوف، والثاني عدد الأعمدة، والثالث موقع الرسم البياني الحالي. على سبيل المثال، `subplot(2, 2, 1)` يعني أن لديك شبكة من 2×2 وأنك تريد رسم الرسم البياني الأول في الزاوية العلوية اليسرى.
من ناحية أخرى، الدالة `subplots()` توفر طريقة أكثر مرونة لإنشاء شبكة كاملة من الرسوم البيانية دفعة واحدة. يمكنها إرجاع كائن الشكل وكائنات المحاور، مما يسهل التعديل على كل رسم بياني بشكل منفصل. على سبيل المثال:
import matplotlib.pyplot as plt
import numpy as np
# إنشاء بيانات تجريبية
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# إنشاء Subplots باستخدام الدالة subplots
fig, axs = plt.subplots(2, 1, figsize=(8, 6))
# الرسم البياني الأول
axs[0].plot(x, y1, 'r')
axs[0].set_title('Sine Wave')
# الرسم البياني الثاني
axs[1].plot(x, y2, 'b')
axs[1].set_title('Cosine Wave')
plt.tight_layout()
plt.show()
في هذا المثال، تم إنشاء رسمين بيانيين باستخدام شبكة 2×1. تم تخصيص كل رسم بياني باستخدام كائن المحور الخاص به، مما يوفر مرونة كبيرة في تصميم الرسوم البيانية. يمكنك تعديل العناوين، الألوان، وغيرها من العناصر لكل رسم بياني بشكل مستقل، مما يجعل استخدام Subplots أداة قوية لتحليل البيانات وعرضها بشكل جذاب.
