اذهب إلى المحتوى
  • 0

مامعنى الوسيط الذي يتم تمريره إلى  add_subplot(111) في Matplotlib

Ali Ismael

السؤال

في توثيق مكتبة Matplotlib وغيرها، أجدهم يقومون بتمرير القيمة 111 وأحياناً 212 إلى الدالة add_subplot لكن لم أستطع فهم ما يعنيه ذلك؟! .. على سبيل المثال في الكود التالي:

import matplotlib.pyplot as plt
x = [3, 4, 2, 5]
y = [5, 8, 7, 21]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()

لماذا 111؟ ما معناها؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

111 تعني شبكة 1x1 وأول subplot. بينما 112 تعني شبكة 1x1 وثاني subplot. بينما 232 تعني شبكة 2x3 وثاني subplot. وهكذا.. وهذه الأرقام هي اختصار ل hwi أي الارتفاع والعرض والفهرس (رقم ال plot). حيث أن الدالة subplot تقوم بتشكيل شبكة "Grid" عن طريق تقسيم ال figure إلى عدة أقسام على أساس تقسيم محدد (مثل 111 أو 232 أو 542 ..إلخ) ويتم وضع ال plots ضمن خلايا هذه الشبكة. انظر للصورة التالية:
AEGXG.png.8a95c914333a9e5f5305e2e93075b781.png
هنا لدينا شبكة 2x2 وقمنا بوضع 4 رسوم بيانية هم 221 و 222 و 223 و 224. والكود الموافق:

import matplotlib.pyplot as plt
f = plt.figure()
#top left
f.add_subplot(221) # الأول
#top right
f.add_subplot(222) # الثاني
#bottom left
f.add_subplot(223) # الثالث
#bottom right 
f.add_subplot(224) # الرابع
plt.show()

كذلك بدلاً من كتابة add_subplot(hwi) يمكن كتابة (height,width,index) add_subplot (وهي الصيغة الأساسية) حيث أن hwi هي الصيغة المختصرة (أو المشفرة).

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

ببساطة يمثل هذا المعامل شكل الخرج الذي تريده، بحيث يمثل اول رقمين ابعاد ال grid الذي تريد انشاؤه، فمثلا 11  يعني صف واحد وعمود واحد أي أنها رسمة واحدة فقط، بينما 22 تمثل مربعا به عمودين وصفين أي 4 رسمات وهكذا.

بينما يمثل الرقم الثالث مكان الرسمة داخل هذا ال grid، ف 1 هو المكان الاول في الصف الاول يسارا، و 2 العمود الثاني الصف الاول وهكذا. بحيث يكون العد من اليسار الي اليمين ثم بالصف.

المثال التالي يوضح معني الشرح:

fig = plt.figure()
fig.add_subplot(1, 2, 1)   #أعلى وأسفل يسارا
fig.add_subplot(2, 2, 2)   #أعلى اليمين
fig.add_subplot(2, 2, 4)   #أسفل اليمين
plt.show()

mWRy3.jpg.a621a95b40a1a5e1b01b810bf2a9286d.jpg

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...