Как установить единицы измерения оси X на дату и время пустого графика в Matlab? - PullRequest
0 голосов
/ 06 мая 2018

Я создал фигуру с figure; и ничего на ней не нарисовал.

Как я могу установить, чтобы его ось X была datetime из этой ситуации?

Вход

xlim([startTime, endTime]);

1010 * приводит *

Limits must be a 2-element vector of increasing numeric values.

Как выполнить?

1 Ответ

0 голосов
/ 06 мая 2018

Поскольку функция xlim принимает вектор из двух числовых значений (первое - минимальное, а второе - максимальное), вы можете преобразовать значения даты и времени в требуемые числовые значения, используя datenum функция. Например:

xlim([datenum(startTime) datenum(endTime)]);

Чтобы сделать вашу ось X читабельной, вы можете позвонить на datetick , чтобы преобразовать метки обратно в действительный формат даты и времени. Например:

datetick('x','dd-mm-yyyy');

Вот очень простой пример:

date_beg = datetime(2016,01,01);
date_end = datetime(2017,12,31);
date_seq = date_beg:date_end;

x = datenum(date_seq);
y = 1:numel(date_seq);

plot(x,y);
datetick('x','dd-mm-yyyy');

Screen

Если вы хотите сохранить ограничения по оси X, вызовите функцию datetick, передав аргумент keeplimits. Вот фрагмент кода, который воспроизводит вашу попытку:

date_beg = datetime(2016,01,01);
date_end = datetime(2017,09,15);

figure();
xlim([datenum(date_beg) datenum(date_end)]);
datetick('x','dd-mm-yyyy','keeplimits');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...