Data Visualization

إتقان تباعد المخططات الفرعية في ماتبلوتليب

Spread the love

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

جدول المحتويات

طريقة tight_layout()

تُعد دالة tight_layout() طريقة بسيطة وفعالة لضبط تباعد الرسوم الفرعية. إنها تمنع تلقائيًا تداخل العناصر مثل العناوين والعلامات. إنها مثالية عندما لا تحتاج إلى تحكم دقيق في معلمات التباعد الفردية.


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1)

axes[0].plot(x, y1)
axes[0].set_title('Sine Wave')
axes[1].plot(x, y2)
axes[1].set_title('Cosine Wave')

plt.tight_layout()
plt.show()

طريقة subplots_adjust()

للحصول على تحكم دقيق، استخدم plt.subplots_adjust(). تسمح هذه الدالة بالتلاعب بمعلمات التباعد: left، bottom، right، top، wspace (العرض)، و hspace (الارتفاع). هذه كسور من أبعاد الشكل.


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1)

axes[0].plot(x, y1)
axes[0].set_title('Sine Wave')
axes[1].plot(x, y2)
axes[1].set_title('Cosine Wave')

plt.subplots_adjust(hspace=0.5)
plt.show()

هنا، hspace=0.5 يزيد التباعد الرأسي. جرّب القيم لتحقيق التصميم المرغوب. قم بضبط wspace بشكل مشابه للتباعد الأفقي.

طريقة subplot_tool()

يوفر plt.subplot_tool() واجهة تفاعلية. يفتح نافذة يمكنك من خلالها سحب وإعادة تنظيم حجم الرسوم الفرعية بصريًا. هذا مفيد بشكل خاص للتصميمات المعقدة.


import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2)

plt.subplot_tool()
plt.show()

معلمة constrained_layout=True

نهج حديث وقوي هو استخدام constrained_layout=True داخل plt.subplots(). هذا يقوم تلقائيًا بضبط المعلمات لمنع التداخل، معالجة التصميمات المعقدة بشكل أكثر فعالية من tight_layout().


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1, constrained_layout=True)

axes[0].plot(x, y1)
axes[0].set_title('Sine Wave')
axes[1].plot(x, y2)
axes[1].set_title('Cosine Wave')

plt.show()

هذا يبسط الكود ويقدم حلاً موثوقًا، خاصةً للأشكال المعقدة. اختر الطريقة الأنسب لاحتياجاتك: tight_layout() أو constrained_layout=True لضبط بسيط؛ subplots_adjust() للتحكم الدقيق؛ و subplot_tool() للضبط التفاعلي.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *