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

تعديل الهوامش margins بين ال subplots في matplotlib | بايثون

Ali Ismael

السؤال

أريد تعديل المسافات الفاصلة بين ال subplots فمثلاً لدي الكود التالي الذي يقوم بتوليد الرسمين التاليين:

import matplotlib.pyplot as plt
data = np.arange(3000).reshape((100,30))
fig = plt.figure()
subplot1 = fig.add_subplot(121)
subplot1.plot(data)
subplot2 = fig.add_subplot(122)
subplot2.plot(data)
plt.show()

والنتيجة:
index.png.b2ab3bbacf3e19eb94694d1e7892c915.png ما أريده هو جعلهما متباعدين لكي يكون الناتج بشكل أوضح ولكي لا يحدث هذا التداخل.
 

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

Recommended Posts

  • 1

يمكنك استخدام الدالة tight_layout:

matplotlib.pyplot.tight_layout(pad=1.08)

حيث تقوم هذه الدالة بضبط المساحة المتروكة بين ال subplots. حيث أن الوسيط الأول يمثل المسافة (الحشو) بين حدود ال figure وبين ال subplots.:

import matplotlib.pyplot as plt
fig = plt.figure()
subplot1 = fig.add_subplot(121)
subplot1.plot(data)
subplot2 = fig.add_subplot(122)
subplot2.plot(data)
fig.tight_layout(pad=3.0)
plt.show()

الخرج:
1.png.c3d9385e9da894e4e82b3accb38bd638.png
والطريقة الثانية من خلال subplots_adjust حيث تمنحك هذه الدالة إمكانية التعديل بشكل أكثر حرية وبكل الاتجاهات، كما في الكود التالي:

import matplotlib.pyplot as plt
fig = plt.figure()
subplot1 = fig.add_subplot(121)
subplot1.plot(data)
subplot2 = fig.add_subplot(122)
subplot2.plot(data)
fig.subplots_adjust(
    top=0.981,
    bottom=0.049,
    left=0.042,
    right=0.981,
    hspace=0.2,
    wspace=0.2
)
plt.show()

2.png.2d80e50ec387f1aaacc6c4ae5ca90afc.png

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

  • 1

هناك طريقة سهلة للغاية باستخدام subplots_tool والتي توفر طريقة سهلة لضبط أبعاد الصورة ، الكود التالي يوضح كيفية  استخدامها:

import matplotlib.pyplot as plt
import numpy as np
data = np.arange(3000).reshape((100,30))
fig = plt.figure()
subplot1 = fig.add_subplot(121)
subplot1.plot(data)
subplot2 = fig.add_subplot(122)
subplot2.plot(data)
plt.subplot_tool()
plt.show()

تظهرلك هذه الشاشة:

6169c6aad3124_Figure2021-10-15202020.png.371a966f12d29a4f502b22b1e3ae1e63.png

من هنا تستطيع ضبط أبعاد الصورة كما تشاء دون الحاجة لمزيد من الكود.

أو استخدام constrained_layout = True كالتالي:

import matplotlib.pyplot as plt
import numpy as np
data = np.arange(3000).reshape((100,30))
fig = plt.figure()
subplot1 = fig.add_subplot(121)
subplot1.plot(data, constrained_layout = True)
subplot2 = fig.add_subplot(122)
subplot2.plot(data, constrained_layout = True)
plt.show()

وفي كلتا الطريقتين يمكن ضبطهمها ليكونوا بالمسافة التي تريد هكذا:

2.png.2d80e50ec387f1aaacc6c4ae5ca90afc.png.d297b0ff2cae3df5b5bd55df4c282bc4.png

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...