python - tutorial - matplotlib شرح




لماذا قطع بلدي xlabel قبالة مؤامرة بلدي matplotlib؟ (2)

أنا matplotlib لمجموعة بيانات باستخدام matplotlib حيث لدي xlabel "طويل القامة" إلى حد كبير (وهي صيغة تم تقديمها في TeX تحتوي على كسر وبالتالي فهي تحتوي على مكافئ ارتفاع لبضع أسطر من النص).

في أي حال ، فإن الجزء السفلي من المعادلة يتم قطعه دائمًا عندما أرسم الأرقام. لا يبدو أن تغيير حجم الشكل يساعد في ذلك ، ولم أتمكن من معرفة كيفية تحويل محور x "لأعلى" لإفساح المجال لـ xlabel. شيء من هذا القبيل سيكون حلا مؤقتا معقولا ، ولكن ما سيكون لطيفا هو أن يكون هناك طريقة لجعل matplotlib تدرك تلقائيا أن العلامة مقطوعة وتغيير حجمها وفقا لذلك.

إليك مثال لما أعنيه:

import matplotlib.pyplot as plt

plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()

بينما يمكنك رؤية ylabel بأكمله ، يتم قطع xlabel في الأسفل.

في هذه الحالة ، هذه مشكلة خاصة بالماكينة ، فأنا أقوم بتشغيل هذا على OSX 10.6.8 مع matplotlib 1.0.0


استعمال:

import matplotlib.pyplot as plt

plt.gcf().subplots_adjust(bottom=0.15)

لإفساح المجال للملصق.

تصحيح:

منذ أن أعطيت الجواب ، أضاف tight_layout() وظيفة tight_layout() . لذا أقترح استخدامه:

plt.tight_layout()

يجب أن تُفسح المجال لـ xlabel.


الخيار السهل هو تكوين matplotlib لضبط حجم الرسم تلقائيًا. إنه يعمل بشكل مثالي بالنسبة لي ولست متأكدًا من سبب عدم تنشيطه افتراضيًا.

طريقة 1

عين هذا في ملف matplotlibrc الخاص بك

figure.autolayout : True

انظر هنا لمزيد من المعلومات حول تخصيص ملف matplotlibrc: http://matplotlib.org/users/customizing.html

الطريقة الثانية

تحديث rcParams أثناء وقت التشغيل مثل هذا

from matplotlib import rcParams
rcParams.update({'figure.autolayout': True})

وتتمثل ميزة استخدام هذا الأسلوب في أن التعليمة البرمجية الخاصة بك ستنتج نفس الرسومات البيانية على أجهزة تم تكوينها بشكل مختلف.





matplotlib