Изменить маркировку оси x независимо от значений x?

Представьте, что я рисую, например. это:

plot(1:1500,1:1500)

Это будет выглядеть как на изображении ниже, с осью x, начинающейся с 0 и доходящей до 1500.

Теперь я не хочу иметь эту маркировку, но вместо этого маркировка оси x должна начинаться, например, с. 1, а затем заканчиваются на 151 (увеличение на 1/10 для каждой точки по оси x, дополнительно смещение на 1).

Я просто хочу изменить маркировку оси x, я не хочу менять входной вектор x на функцию графика и не хочу строить другие точки. Я просто хочу, чтобы маркировка x начиналась с другого смещения и увеличивалась на другой размер шага, независимо от значений x, переданных функции графика.

Это возможно? Как? Это облегчило бы мне некоторые вещи. Спасибо за любую подсказку!

введите здесь описание изображения


person stefan.at.wpf    schedule 29.06.2012    source источник


Ответы (1)


Вы можете настроить деления, используя свойства оси XTick и XTickLabel.

Пример:

x = 1:7;
y = rand(size(x));
plot(x,y)
set(gca, 'XTickLabel',{'Mon','Tue','Wed','Thu','Fri','Sat','Sun'})

скриншот

person Amro    schedule 29.06.2012
comment
Спасибо, свойство XTickLabel кажется мне полезным, так как я могу сгенерировать для него все значения. Мне все еще интересно, можно ли напрямую установить что-то вроде xAxisOffset=1, xAxisStepsize=1/10, чтобы мне не нужно было строить полный вектор. Но если я не понимаю свойства неправильно, ничего подобного нет): - person stefan.at.wpf; 29.06.2012
comment
@stean.at.wpf: не явно. XTick позволяет указать, где MATLAB показывает деления. XTickLabel позволяет настроить метку в этих местах. Обратите внимание, что как только вы установите их вручную, вы больше не получите режим auto (попробуйте plot(1:100), затем измените размер фигуры и посмотрите, как он регулирует деления в соответствии с шириной) - person Amro; 29.06.2012
comment
@Amro: может быть, я мог бы изменить свой пример. Каковы точные значения, которые вы хотите на оси x. Это 1:1/10:151? Кроме того, как часто вы их показываете, N-значения через равные промежутки? - person Amro; 29.06.2012
comment
Амро, для меня это работает довольно хорошо с использованием XTickLabel, поэтому я выбрал ваш ответ как правильный :-) (я просто ввел что-то вроде 1: 1/10: 151 в качестве входных данных для XTickLabel и оставил частоту показа метки для Matlab , это вполне нормально). - person stefan.at.wpf; 29.06.2012