Matplotlib coord. أصل SYS إلى أعلى اليسار
-
20-09-2019 - |
سؤال
كيف يمكنني قلب أصل مؤامرة 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 في التقلب في كل مرة.