python - شرح - seaborn




عكس المحور ص في PyPlot (5)

لدي رسم بياني مؤامرة مبعثر مع حفنة من الاحداثيات س ، ص عشوائي. يبدأ المحور Y حاليًا عند 0 ويصل إلى القيمة القصوى. أود أن يبدأ Y-Axis بالقيمة القصوى والانتقال إلى الصفر.

points = [(10,5), (5,11), (24,13), (7,8)]    
x_arr = []
y_arr = []
for x,y in points:
    x_arr.append(x)
    y_arr.append(y)
plt.scatter(x_arr,y_arr)

إذا كنت في ipython في وضع pylab ، ثم

plt.gca().invert_yaxis()
show()

مطلوب show() لجعله تحديث الشكل الحالي.


إن إجابة DisplacedAussie صحيحة ، لكن عادةً ما تكون الطريقة الأقصر هي عكس محور واحد في السؤال:

plt.scatter(x_arr, y_arr)
ax = plt.gca()
ax.set_ylim(ax.get_ylim()[::-1])

حيث تقوم الدالة gca() بإرجاع مثيل المحاور الحالي ويعرض [::-1] القائمة.


استخدم matplotlib.pyplot.axis()

axis([xmin, xmax, ymin, ymax])

لذلك يمكنك إضافة شيء كهذا في النهاية:

plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])

على الرغم من أنك قد ترغب في الحشو عند كل طرف بحيث لا تجلس النقاط المتطرفة على الحدود.


بدلاً من ذلك ، يمكنك استخدام وظيفة matplotlib.pyplot.axis() ، والتي تتيح لك قلب أي محور للمحور

ax = matplotlib.pyplot.axis()
matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))

أو إذا كنت تفضل عكس محور X فقط ، إذاً

matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))

في الواقع ، يمكنك عكس كل من المحور:

matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))

هناك واجهة برمجة تطبيقات جديدة تجعل هذا الأمر أكثر بساطة.

plt.gca().invert_xaxis()

و / أو

plt.gca().invert_yaxis()






matplotlib