سؤال

كيف يمكنني قلب أصل مؤامرة matplotlib ليكون في الزاوية العلوية اليسرى-على عكس اليسار السفلي الافتراضي؟ أنا أستخدم matplotlib.pylab.plot لإنتاج المؤامرة (على الرغم من أنه إذا كان هناك روتين تخطيط آخر أكثر مرونة ، يرجى إعلامي).

أنا أبحث عن ما يعادل أمر MATLAB: AXIS IJ ؛

أيضًا ، لقد أمضيت بضع ساعات في تصفح Matplotlib مساعدة وجوجل ولكن لم أتمكن من الإجابة. بعض المعلومات حول المكان الذي كان بإمكاني البحث عنه ، ستكون الإجابة مفيدة أيضًا.

هل كانت مفيدة؟

المحلول

للحصول على صورة أو مؤامرة محددة ، يمكنك استخدام الكلمة الرئيسية origin = None | 'lower' | 'upper' وبالنسبة لمؤامرة خط ، يمكنك ضبط ylimits عالية إلى منخفض.

from pylab import *
A = arange(25)/25.
A = A.reshape((5,5))

figure()
imshow(A, interpolation='nearest', origin='lower')

figure()
imshow(A, interpolation='nearest')

d = arange(5)
figure()
plot(d)
ylim(5, 0)

show()

نصائح أخرى

أسهل طريقة هي الاستخدام:

plt.gca().invert_yaxis()

بعد أن رسمت الصورة. Origin يعمل فقط ل imshow.

axis ij فقط يجعل المحور Y يزداد إلى أسفل بدلاً من الصعود ، أليس كذلك؟ إذا كان الأمر كذلك ، إذن matplotlib.axes.invert_yaxis() قد يكون كل ما تحتاجه - لكن لا يمكنني اختبار ذلك الآن.

إذا لم ينجح ذلك ، فقد وجدت منشور بريدي يقترح ذلك

setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))

قد تفعل ما تريد أن تشبه axis ij.

فيما يلي طريقة أساسية لتحقيق ذلك

ax=pylab.gca()

ax.set_ylim(ax.get_ylim()[::-1])

هذه

plt.ylim(max(plt.ylim()), min(plt.ylim()))

له ميزة على هذا

plt.gca().invert_yaxis()

وهل أنه إذا كنت في وضع تفاعلي وقمت بتخطيط نفس المؤامرة مرارًا وتكرارًا (ربما مع البيانات المحدثة ولديها نقطة توقف بعد المؤامرة) ، فلن يستمر المحور Y في التقلب في كل مرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top