Reverse Y-Axis in PyPlot
I have a scatter plot graph with a bunch of random x, y coordinates. Currently the Y-Axis starts at 0 and goes up to the max value. I would like the Y-Axis to start at the max value and go up to 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)
There is a new API that makes this even simpler.
Read more... Read less...
DisplacedAussie's answer is correct, but usually a shorter method is just to reverse the single axis in question:
plt.scatter(x_arr, y_arr) ax = plt.gca() ax.set_ylim(ax.get_ylim()[::-1])
gca() function returns the current Axes instance and the
[::-1] reverses the list.
If you're in ipython in
pylab mode, then
show() is required to make it update the current figure.
You could also use function exposed by the axes object of the scatter plot
scatter = plt.scatter(x, y) ax = scatter.axes ax.invert_xaxis() ax.invert_yaxis()
Another similar method to those described above is to use
plt.ylim for example:
This method works for me when I'm attempting to compound multiple datasets on Y1 and/or Y2