Search code examples
matlabimage-processingplotaxes

How do I edit the axes of an image in MATLAB to reverse the direction?


I would like to edit the axes in my series of images being displayed.

This is what my image looks like:

parabola

As you can see, it ranges from 0 to about 500 from top to bottom. Can I invert that? Plus, I want to mirror the image being shown, so that it starts from left to right... or, if it's possible, to let the axes show from right to left.


Solution

  • To reverse an axis, you can set the 'XDir' or 'YDir' property of the current axes to 'reverse':

    set(gca,'XDir','reverse');  %# This flips the x axis
    

    Keep in mind that flipping an axis in this way flips everything in the plot as well. This probably isn't what you want to do for the y axis. You probably just want to flip the y axis labels, which you can do by modifying the 'YTickLabel' property in the following way:

    yLimits = get(gca,'YLim');  %# Get the y axis limits
    yTicks = yLimits(2)-get(gca,'YTick');  %# Get the y axis tick values and
                                           %#   subtract them from the upper limit
    set(gca,'YTickLabel',num2str(yTicks.'));  %'# Convert the tick values to strings
                                               %#   and update the y axis labels