Data Visualization

إتقان وضع العناصر الأسطورية في ماتبلوتليب

Spread the love

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

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

استخدام bbox_to_anchor لوضع التسمية التوضيحية

تتيح وسيطة bbox_to_anchor في دالة legend() تحديد موقع التسمية التوضيحية بدقة. تأخذ زوجًا (x, y) يحدد الركن السفلي الأيسر للتسمية التوضيحية في إحداثيات الشكل. (0,0) هو الركن السفلي الأيسر، و(1,1) هو الركن العلوي الأيمن. تقوم وسيطة loc بتحسين الوضع داخل نقطة الإرساء هذه.


import matplotlib.pyplot as plt
import numpy as np

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

fig, ax = plt.subplots()
ax.plot(x, y1, label='sin(x)')
ax.plot(x, y2, label='cos(x)')

ax.legend(bbox_to_anchor=(1.1, 1), loc='upper left') # ضبط (1.1,1) حسب الحاجة

ax.set_title('موجات الجيب وجيب التمام')
ax.set_xlabel('x')
ax.set_ylabel('y')

plt.tight_layout()
plt.show()

هنا، bbox_to_anchor=(1.1, 1) يضع التسمية التوضيحية قليلاً إلى يمين الرسم البياني (x=1.1) وفي الأعلى (y=1). loc='upper left' يصطف التسمية التوضيحية ضمن نقطة الإرساء تلك. جرّب قيم loc مختلفة (مثل، ‘upper right’، ‘lower left’، ‘center’) واضبط إحداثيات (x,y) للحصول على الوضع الأمثل.

منع اقتصاص التسميات التوضيحية باستخدام bbox_extra_artists و bbox_inches

قد تؤدي التسميات التوضيحية الكبيرة أو الأشكال الضيقة إلى اقتصاص التسميات التوضيحية حتى مع bbox_to_anchor. bbox_extra_artists و bbox_inches يحلان هذه المشكلة. يضم bbox_extra_artists التسمية التوضيحية في حساب مربع الحد لعملية الحفظ، و bbox_inches='tight' يضمن هوامش ضيقة، مما يمنع الاقتصاص.


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 500)  # المزيد من البيانات لتسمية توضيحية أكبر
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

fig, ax = plt.subplots()
ax.plot(x, y1, label='sin(x)')
ax.plot(x, y2, label='cos(x)')
ax.plot(x, y3, label='tan(x)')

leg = ax.legend(bbox_to_anchor=(1.05, 1), loc='upper left')

fig.savefig('legend_outside.png', bbox_extra_artists=[leg], bbox_inches='tight')

plt.show()

يتم تخزين التسمية التوضيحية في leg، ثم تمريرها إلى bbox_extra_artists في savefig. bbox_inches='tight' يضمن حفظ الشكل بأكمله، بما في ذلك التسمية التوضيحية. استبدل 'legend_outside.png' باسم الملف المطلوب.

تتيح هذه التقنيات وضعًا مرنًا وفعالًا للتسمية التوضيحية في Matplotlib، مما يعزز وضوح وجاذبية الرسوم البيانية الخاصة بك. جرّب معلمات مختلفة لتحقيق التصميم المثالي.

اترك تعليقاً

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