0Pricing
Python Academy · درس

الأشكال والمحاور

افهم نموذج الرسم البياني

الأشكال والمحاور درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

نموذج الرسم

Matplotlib هي مكتبة الرسم البياني الأساسية في Python. ولاستخدامها بكفاءة، يجب فهم نموذجها ذي المستويين: Figure وAxes.

تمثل Figure النافذة أو الصفحة الإجمالية التي يُرسم عليها كل شيء. أما Axes فهو مخطط واحد داخل Figure، وله نظام إحداثيات x وy خاص به.

  • يمكن أن تحتوي Figure واحدة على عدة كائنات Axes
  • كل Axes هو الموضع الذي توجد فيه البيانات فعليًا

Figure مقابل Axes مقابل Axis

من السهل الخلط بين ثلاثة مصطلحات:

  • Figure هي الصورة بأكملها، أي الحاوية
  • Axes هي منطقة رسم واحدة (انتبهوا إلى التهجئة، فهي ليست جمع axis)
  • Axis هو محور x أو محور y، أي خط الأعداد داخل Axes

إذًا تحتوي Figure على Axes، ويحتوي كل Axes على كائنَي Axis (أو ثلاثة).

إنشاء Figure وAxes

يوصى بالبدء باستخدام plt.subplots(). فهي تعيد Figure وAxes في استدعاء واحد.

ومن السهل فهم هذا النموذج حتى من دون عرض الرسم. نحاكي هنا ما تمثله هذه الكائنات.

fig = {'type': 'Figure', 'axes': []}
ax = {'type': 'Axes', 'parent': 'Figure'}
fig['axes'].append(ax)
print('Figure holds', len(fig['axes']), 'axes')
print('Axes parent is the', ax['parent'])

واجهة pyplot

يقدم Matplotlib أسلوبين. يستخدم أسلوب pyplot (القائم على الحالة) الدالة plt.plot() ويتتبع Figure الحالية تلقائيًا. أما الأسلوب الموجه للكائنات فيستخدم ax.plot() بشكل صريح.

لأي شيء يتجاوز رسمًا سريعًا، فضّلوا الأسلوب الموجه للكائنات. فهو أوضح عند استخدام عدة Axes.

لماذا يتفوق الأسلوب الموجه للكائنات

عند استدعاء plt.title('X')، يطبّق العنوان على Axes الحالية أيًا كانت. ومع وجود مخططات فرعية متعددة، يصبح ذلك غامضًا.

أما مع ax.set_title('X') فلا مجال للتخمين: تستهدف الدالة Axes التي حددتموها بالضبط.

أنظمة الإحداثيات

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

يمكننا نمذجة هذا الربط باستخدام رياضيات بسيطة.

data_min, data_max = 0, 100
pixel_min, pixel_max = 0, 400

def to_pixels(value):
    frac = (value - data_min) / (data_max - data_min)
    return pixel_min + frac * (pixel_max - pixel_min)

for v in [0, 25, 50, 100]:
    print('data', v, '->', to_pixels(v), 'px')

حجم Figure وDPI

لـFigure حجم بالبوصة ودقة بوحدة نقطة لكل بوصة (DPI). ويُحسب حجم البكسلات بضرب القيمتين.

فعلى سبيل المثال، ينتج عن Figure بحجم 6x4 بوصات وبدقة 100 DPI حجم قدره 600x400 بكسل.

width_in, height_in = 6, 4
dpi = 100
print('Pixels:', width_in * dpi, 'x', height_in * dpi)

إضافة Axes يدويًا

إلى جانب plt.subplots()، يمكنكم إضافة Axes داخل مستطيل محدد بدقة باستخدام fig.add_axes([left, bottom, width, height])، حيث تمثل كل قيمة جزءًا من Figure يتراوح بين 0 و1.

وهذه هي الطريقة التي تُنشأ بها المخططات الداخلية والتنسيقات المخصصة.

Figure الحالية

يحتفظ pyplot بسجل لـFigures ومؤشر إلى Figure الحالية. وتعيد plt.gcf() الـFigure الحالية، بينما تعيد plt.gca() الـAxes الحالية.

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

العرض والإغلاق

يعرض plt.show() جميع Figures المفتوحة في نافذة. ويحرر plt.close() موارد Figure. وفي البرامج النصية التي تنشئ Figures كثيرة، يمنع إغلاقها تراكم الذاكرة.

أما في دفاتر الملاحظات، فتظهر Figure داخل الدفتر تلقائيًا.

قائمة تحقق ذهنية

قبل رسم أي شيء، اسألوا أنفسكم:

  • كم عدد الأشكال التي أحتاج إليها؟
  • كم عدد المحاور لكل شكل؟
  • إلى أي منطقة رسم ينتمي كل جزء من البيانات؟

تجعل الإجابة عن هذه الأسئلة أولًا واجهة API الكائنية التوجه تبدو طبيعية.

تحقق سريع

اختبروا مدى فهمكم لنموذج الشكل والمحاور.

مراجعة

لقد تعلمتم نموذج Matplotlib الأساسي:

  • Figure الحاوية، ويُحدد حجمها بالبوصات مضروبة في DPI
  • Axes منطقة رسم مستقلة بإحداثياتها الخاصة
  • Axis خط الأعداد لمحور x أو y
  • فضّلوا الأسلوب الكائني التوجه باستخدام fig, ax = plt.subplots()

باستخدام هذا النموذج الذهني، تصبح كل عملية تخصيص لاحقة متوقعة.

الأسئلة الشائعة

هل درس «الأشكال والمحاور» مجاني؟

نعم — نص درس «الأشكال والمحاور» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «الأشكال والمحاور»؟

افهم نموذج الرسم البياني تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الأشكال والمحاور»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الأشكال والمحاور
  2. المخططات الخطية والعمودية والمبعثرة
  3. تخصيص المخططات
  4. المخططات الفرعية والتخطيطات
← العودة إلى Python Academy