Последние две команды действительно работают, но, к сожалению, галочки находятся не в том месте, где находится график. Ваши значения x1
(и x2
) находятся в диапазоне от 1 до 230, в то время как значения xData
для тактов составляют около 730000. Если вы выберете значения x для графика в значениях datenum, это сработает.
Другая проблема заключается в том, что длина векторы не складываются в значения каждые 15 минут (или 1 час). Если вам нужны значения каждые 15 минут для временного промежутка с 19/02 09:00 до 21/02 18:00 (всего 57 часов), вам нужно:
4(1/ч)*57(час) + 1 для последнего значения = 229 значений
или вообще:
(промежуток времени / временное окно) + 1
Если вы примените эти изменения к своему коду, вы получите
dataset1 = rand(1,229).';
dataset2 = rand(1,34).';
xstart = datenum('19/02 09:00','dd/mm HH:MM');
xend = datenum('21/02 18:00','dd/mm HH:MM');
% in datenumformat 1 = 24 hours
fifteenminutes=(1/24/4);%15 minutes
spacing_in_15min=((xend-xstart)/fifteenminutes)+1;%duration devided by timewindow, +1 for last value
x1 = linspace(xstart,xend,spacing_in_15min); %values every 15 minutes
x0_OM = datenum('19/02 09:00','dd/mm HH:MM');
x1_OM = datenum('20/02 18:00','dd/mm HH:MM');
onehour=1/24; %one hoour
spacing_in_1hour=((x1_OM-x0_OM)/onehour)+1;%duration devided by timewindow, +1 for last value
x2 = linspace(x0_OM,x1_OM,spacing_in_1hour); %hourly values
tickvalues = linspace(xstart,xend,((xend-xstart)/onehour)+1);
fig=figure ();
yyaxis left
plot(x1,dataset1);
ylabel('Dataset 1')
xlabel('timesteps (15min Interval)');
yyaxis right
plot(x2,dataset2);
ylabel('Dataset 2')
set(gca(1),'XTick', tickvalues); %Ticks every hour for the larger dataset
set(gca(1),'XLim', [x2(1) x2(end)]); %focus on the time with both datasets
datetick('x', 'dd/mm HH:MM', 'keeplimits','keepticks'); %Tickformat
Я думаю, это то, что вы искали. Я удалил несколько значений (x
,Dat
,xData
), которые не использовались. К сожалению, даже в полноэкранном режиме 34 значения Tick — это много, поэтому вы можете изменить формат Tick или увеличить конкретную часть. Если вам нужно проделать больше работы в этой области, я рекомендую вам изучить формат MATLAB datetime
, который я считаю немного лучше, чем datenum
.
person
Finn
schedule
06.03.2019