Прежде всего, я думаю, что ответы, которые я нашел, устарели:
- Исключение промежутков выходного дня из графиков финансовых временных рядов< /а>
- Исключить пропуски дат на графике временных рядов в Matlab
- Datetick учитывает NaN на графике
Моя проблема:
я создал свечной график на основе таблицы расписания с этими датами (формат dd/mm/yyyy
):
'25/01/2019'
'24/01/2019'
'23/01/2019'
'22/01/2019'
'21/01/2019'
'18/01/2019'
'17/01/2019'
'16/01/2019'
'15/01/2019'
'14/01/2019'
'11/01/2019'
'10/01/2019'
'09/01/2019'
'08/01/2019'
'07/01/2019'
'04/01/2019'
'03/01/2019'
'02/01/2019'
'28/12/2018'
'27/12/2018'
'26/12/2018'
'21/12/2018'
'20/12/2018'
'19/12/2018'
'18/12/2018'
И этот код:
candle(this.values);
Это дает мне этот сюжет:
Как видите, есть гэпы, соответствующие нерабочим дням.
Учитывая ответы, которые я нашел на ту же проблему, я сделал следующее:
Создал два массива: один с датами, а другой со строками дат:
this.dates = table2timetable(ticker(1:5:25,:)); %sort them out because were generated in reverse order this.dates = timetable2table(sortrows(this.dates(:,1))); this.dates = this.aux(:,1); this.lbl = datestr(this.aux{:,1},'dd/mm/yyyy');
Получите объект gca, чтобы установить свойства оси X:
this.ax = gca; this.ax.XTick = this.dates{:,1}; this.ax.XTickMode = 'manual'; this.ax.XTickLabel = this.lbl;
И результат таков:
Таким образом, свойства устанавливаются правильно, но пробелы остаются.
Наконец, я попытался установить свойство Timetable VariableContinuity
и вызвал функцию retime
для создания записей пропущенных дат с данными NaN
, чтобы посмотреть, помогло ли это, но с теми же результатами:
this.values.Properties.VariableContinuity = {'event','event','event','event','event','event','event','event'};
this.values = retime(this.values,'daily');
Что еще я мог сделать, чтобы скрыть пробелы?