Установка часовой оси X для построения графика Accumarray в Matlab
В Matlab я использовал accumarray() для создания нового вектора с 3 столбцами целых чисел. Колонка 1: дата (только день); Колонка 2: час; Колонка 3: Пример значения.
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')
У меня возникают проблемы с поиском метода, где ось X помечается раз в час (или 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