2015-01-07 4 views
0

В matlab я использовал accumarray() для создания нового вектора с тремя столбцами целых чисел. Столбец 1: дата (только день); Столбец 2: час; Столбец 3: Пример значения.Установка почасовой x-оси для построения графика Accumarray в Matlab

19.0000 9.0000 25.6937 
19.0000 10.0000 30.2616 
19.0000 11.0000 32.2840 
19.0000 12.0000 28.4867 
19.0000 14.0000 35.4055 
19.0000 16.0000 48.3377 

В настоящее время мой код для построения графика включает следующее:

xdate = datenum(year,month,day,hourVector,minutes,seconds); 

plot(xdate,sampleValue,'-x','MarkerSize',10) 

datetick('x','ddd HHPM') 

У меня возникли проблемы с поиском метода, в котором ось х помечена один раз в час (или 2 часа). Спасибо

ответ

1

Я думаю, вы просто хотите, чтобы x-тики были отстоящими на 1 час, независимо от расстояния между данными? Из вашего примера я не вижу, чтобы у вас обязательно была точка данных один раз в час.

Если я понимаю правильно, попробуйте заменить

datetick('x','ddd HHPM') 

со следующим:

hr_step = 0.0417; % increasing datenum by this amount will advance date by 1 hour 
tick_xdate = min(xdate):hr_step:max(xdate); 
set(gca,'XTick',tick_xdate) 
datetick('x','ddd HHPM','keepticks') % 'keepticks' option forces the use of tick_xdate 
+0

именно то, что я искал спасибо. – Daniel

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