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()