2013-05-11 3 views
2

У меня ось x от 0 до 96, где каждое число соответствует четверти часа в день (96/4 = 24 часа). Мне нужна ось, чтобы показать часы с 0 по 24, нет ли способа изменить только ось после графика?Matlab заменить диапазон осей

ответ

1

Вы можете использовать:

>> set(gca, 'XTick', 0:4:96); 
>> set(gca, 'XTickLabel', 0:24); 

Например:

>> plot(0:96,0:96) 
>> set(gca, 'XTick', 0:4:96); 
>> set(gca, 'XTickLabel', 0:24); 

Результирующая фигура:

enter image description here

1

Существует несколько способов. Хороший может быть, чтобы изменить рентгеновские данные участка:

%# get handles of plot objects 
chH = get(gca,'children'); 
%# for each child: divide the x-data by 4 and put it back 
if length(chH) == 1 
    set(chH,'xdata',get(chH,'xdata')/4); 
else 
    set(chH,{'xdata'},cellfun(@(x)x/4,get(chH,'xdata'),'uni',0)); 
end 
xlim([0 24]) 

Это читает рентгеновские данные объектов построены в текущие оси, делит его на 4, и помещает его обратно. Тогда вы измените пределы осей до 0 ... 24

+0

Имя 'xdata' не является доступным свойством для экземпляра осей класса. Это то, что я получаю, что я делаю неправильно. – 2013-05-11 18:38:59

+0

Имя «xdata» не является доступным свойством для экземпляра осей класса. Я понимаю, где проблема? – 2013-05-11 18:42:41

+1

@totpiko: Я исправил свою ошибку. Я также расширил решение, чтобы оно работало, если в оси были нанесены несколько объектов. Преимущество этого решения заключается в том, что он позволит вам масштабировать и строить дополнительные данные (с правильными значениями x). – Jonas

Смежные вопросы