在PyPlot中反转Y轴
我有一堆随机的x,y坐标散点图。 目前Y轴从0开始并上升到最大值。 我希望Y轴从最大值开始,然后上升到0。
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) 有一个新的API,使这更简单。
 plt.gca().invert_xaxis() 
和/或
 plt.gca().invert_yaxis() 
位移阿修斯的答案是正确的,但通常一个较短的方法是扭转有问题的单轴:
 plt.scatter(x_arr, y_arr) ax = plt.gca() ax.set_ylim(ax.get_ylim()[::-1]) 
  gca()函数返回当前的Axes实例, [::-1]反转列表。 
使用matplotlib.pyplot.axis()
 axis([xmin, xmax, ymin, ymax]) 
所以你可以在最后添加这样的东西:
 plt.axis([min(x_arr), max(x_arr), max(y_arr), 0]) 
虽然你可能想在每一端填充,以便极端点不坐在边界上。
 如果你是在pylab模式下的pylab ,那么 
 plt.gca().invert_yaxis() show() 
  show()需要使其更新当前的数字。 
 另一个与上述类似的方法是使用plt.ylim ,例如: 
 plt.ylim(max(y_array), min(y_array)) 
当我试图在Y1和/或Y2上复合多个数据集时,这种方法适用于我
或者,您可以使用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])) 
使用ylim()可能是你的目的最好的方法:
 xValues = list(range(10)) quads = [x** 2 for x in xValues] plt.ylim(max(quads), 0) plt.plot(xValues, quads) 
 将导致: 