Я хочу построить временной ряд (данные о ценах для форекс будущего контракта). Время указывается в yyyymmdd HH:MM:SS
формате строки. Цена указана в double
.
. Временные ряды охватывают неделю. Тем не менее, отметка времени для точек данных всегда в будние дни. Существует ли встроенный метод для отображения соответствующих меток и масштабирования по оси X, но без выходных?
В настоящее время я могу отображать временные ряды, преобразовав метку времени в строке в datenum
и автоматически расположите ось x с помощью datetick
. Но я хотел бы знать, как исключить выходные дни по оси X. Или исключите любой расширенный интервал времени из сетки, где нет данных.
Визуальный пример приведен в конце. Если можно исключить большое пустое пространство из-за включения выходных (10 апреля было выходным днем в США), сюжет может стать более разборчивым, если сосредоточиться на том, где фактически находятся данные.
Сами точки данных являются исключительными для будни. Но между plot
и datetick
точки сетки в выходные дни создаются всякий раз, когда временной ряд охватывает более недели. datetick
полезен, потому что он определяет соответствующее масштабирование для сетки по оси X и применяет соответствующие метки сетки в одном go. Если вы видите datetick
как часть решения, есть ли способ удалить определенные точки сетки после использования datetick
?
Пример:
T=[7.378903958333334e+05;7.378967076388889e+05]; % converted from "20200409 09:30:00" and "20200415 16:59:00"
C=[0.7166;0.7090];
grid on
plot(T,C,'.')
xlim([min(T),max(T)])
datetick
Если вы заинтересованы в Работая с тем же графиком, пожалуйста, получите данные с помощью c & p в Matlab cmd из pastebin . Те же строки выше приведут к следующему графику.