Проблема с отображением данных в Matlab (установка месяца и года по оси X) - PullRequest
0 голосов
/ 02 марта 2020

У меня есть следующая структура таблицы в MATLAB:

Year  Month  datapoint
1990   1        5
1990   2        7
.
.
.
1995   12       3

Я хочу построить это с точкой данных на оси Y и что-то вроде 1990_1, 1990_2 ... на оси X.

Как я могу go сделать это?

1 Ответ

2 голосов
/ 02 марта 2020

Вы можете отформатировать внешний вид XAxis, получив дескриптор этого объекта с помощью функции get , а затем непосредственно изменив свойства.

% Create example table
t = table();
t.Year = repelem(1990,72,1);
t.Month = [1:72].';
t.datapoint = [5:76].';

plot(t.datapoint)

% Get x axis
xaxis = get(gca,'XAxis');

% Format tick labels
xaxis.TickLabels = compose('%d_%d',t.Year,t.Month);

% Format interpreter
xaxis.TickLabelInterpreter = 'none';

% Limit number of ticks
xaxis.TickValues = 1:numel(t.datapoint);


Согласно вашему комментарию, чтобы увидеть только каждый 12-й ярлык:

indx = 1:72;
indx(12:12:72) = 0;
indx(indx > 1) = 1;
xaxis.TickLabels(find(indx)) = {''}
...