Custom x-axis values in a matlab plot

Devon picture Devon · Nov 26, 2012 · Viewed 56.6k times · Source

Currently when I plot a 9 by 6 array, the x-axis of the figure is just 1, 2, 3 up to 9. The Y-axis shows the correct values.

Instead of 1 to 9 I would like the x-axis values to be custom. They should be

100 200 400 1000 2000 5000 10000 20000 50000

instead. I tried

set(gca,'XTick', [100 200 400 1000 2000 5000 10000 20000 50000])

But that's not the correct way to do it. Is there a Matlab option to have these custom values for the x-axis? Why is Matlab just using 1 to 9 anyway?

Answer

Framerius picture Framerius · Mar 25, 2014

If you want to keep distances between x-values (e.g. 1:9) and only change the labels (not the distances between x-values), try this:

y = rand(9,6);
labels = [100 200 400 1000 2000 5000 10000 20000 50000];
plot(y);
set(gca, 'XTick', 1:length(labels)); % Change x-axis ticks
set(gca, 'XTickLabel', labels); % Change x-axis ticks labels.