Ali Ismael نشر 16 أكتوبر 2021 أرسل تقرير نشر 16 أكتوبر 2021 كيف يمكنني التحكم بحجم ال subplots؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 16 أكتوبر 2021 أرسل تقرير نشر 16 أكتوبر 2021 يمكنك القيام بذلك من خلال الدالة add_gridspec: add_gridspec(nrows=1, ncols=1, **kwargs) # حيث أن الوسيط الأول هو عدد الأسطر في الشكبة # الوسيط الثاني هو عدد الأعمد # مع استخدام وسطاء إضافية مثل: # width_ratios لتحديد عرض كل رسم # height_ratios لتحديد ارتفاع كل رسم ثم إضافة ال subplots كما في المثال التوضيحي التالي: fig5 = plt.figure(constrained_layout=True) # subplot تحديد أبعاد كل widths = [2, 3, 1.5] heights = [1, 3, 2] # subplots تعريف مساحة الشبكة التي ستضم ال spec5 = fig5.add_gridspec(ncols=3, nrows=3, width_ratios=widths, height_ratios=heights) # GridSpec(3, 3, height_ratios=[1, 3, 2], width_ratios=[2, 3, 1.5]) # subplots إضافة for row in range(3): for col in range(3): # subplot إضافة ax = fig5.add_subplot(spec5[row, col]) # وضع معلومات ضمنه تمثل الطول والعرض label = 'Width: {}\nHeight: {}'.format(widths[col], heights[row]) ax.annotate(label, (0.1, 0.5), xycoords='axes fraction', va='center') الخرج: كما يمكنك استخدام الوسيط gridspec_kw في الدالة subplots لتحديد نسبة العرض والارتفاع مباشرةً كما في المثال التالي: import numpy as np import matplotlib.pyplot as plt # البيانات x = np.arange(0, 10, 0.2) y = np.sin(x) # رسمها f, (ax1, ax2) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [3, 1]}) # رسم البيانات ax1.plot(x, y,color="w") ax1.set_facecolor('black') ax2.plot(y, x,color="w") ax2.set_facecolor('red') # plots لترك مسافة بين ال f.tight_layout() # إضافة خطوط شبكية ax1.grid(b = True, color ='w', linestyle ='-.', linewidth = 0.5, alpha = 0.6) ax2.grid(b = True, color ='black', linestyle ='-.', linewidth = 0.5, alpha = 0.6) والخرج: مثال آخر: import numpy as np import matplotlib.pyplot as plt # البيانات x = np.arange(0, 10, 0.2) y = np.sin(x) # رسمها f, (ax0, ax1, ax2) = plt.subplots(3, 1, gridspec_kw={'height_ratios': [1, 1, 3]}) ax0.plot(y, x,color="w") ax0.set_facecolor('b') ax1.plot(x, y,color="w") ax1.set_facecolor('black') ax2.plot(y, x,color="w") ax2.set_facecolor('red') f.tight_layout() ax0.grid(b = True, color ='b', linestyle ='-.', linewidth = 0.5, alpha = 0.6) ax1.grid(b = True, color ='w', linestyle ='-.', linewidth = 0.5, alpha = 0.6) ax2.grid(b = True, color ='black', linestyle ='-.', linewidth = 0.5, alpha = 0.6) الخرج: 1 اقتباس
-1 Ahmed Sharshar نشر 16 أكتوبر 2021 أرسل تقرير نشر 16 أكتوبر 2021 يمكنك استخدام set_figwidth و set_figheight لضبط طول وعرض الصورة بتمرير رقم يمثل حجم الطول أو العرض كالتالي: f.set_figheight(15) f.set_figwidth(15) كذلك يمكنك استخدام figsize للتحكم في الإحداثيات التي يتم عرضها بالطول والعرض كالتالي: import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 2, figsize=(10,7)) #حجم الرسم fig.tight_layout() #البيانات المراد عرضها x = [1, 2, 3] y = [7, 13, 24] #خلق الرسم ax[0, 0].plot(x, y, color='red') ax[0, 1].plot(x, y, color='blue') ax[1, 0].plot(x, y, color='green') ax[1, 1].plot(x, y, color='purple') وتظهر كالتالي: أو تضغير حجم الرسمة بتصغير الأبعاد التي يراد عرضها هكذا: import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 2, figsize=(5,5)) #حجم الرسم fig.tight_layout() #البيانات المراد عرضها x = [1, 2, 3] y = [7, 13, 24] #خلق الرسم ax[0, 0].plot(x, y, color='red') ax[0, 1].plot(x, y, color='blue') ax[1, 0].plot(x, y, color='green') ax[1, 1].plot(x, y, color='purple') فهذه المرة تظهر أصغر هكذا: اقتباس
السؤال
Ali Ismael
كيف يمكنني التحكم بحجم ال subplots؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.