Как указать диапазон для оси X на графике Matlab / Octave? - PullRequest
1 голос
/ 02 мая 2020

У меня есть следующий набор данных:

octave:4> data(1:10,:)
ans =

 Columns 1 through 10:

    198.000000000   2001.000000000      1.000000000     30.000000000      0.917600000      0.928000000      0.914700000      0.926900000      0.000133000      0.000108000
    199.000000000   2001.000000000      1.000000000     31.000000000      0.926800000      0.942600000      0.926600000      0.941300000      0.000160000      0.000133000
    200.000000000   2001.000000000      2.000000000      1.000000000      0.941400000      0.944700000      0.936400000      0.937300000      0.000083000      0.000160000
    201.000000000   2001.000000000      2.000000000      2.000000000      0.937400000      0.942100000      0.931800000      0.936400000      0.000103000      0.000083000
    202.000000000   2001.000000000      2.000000000      4.000000000      0.936600000      0.939700000      0.936600000      0.939400000      0.000033000      0.000103000
    203.000000000   2001.000000000      2.000000000      5.000000000      0.939300000      0.943900000      0.936500000      0.937100000      0.000074000      0.000033000
    204.000000000   2001.000000000      2.000000000      6.000000000      0.937200000      0.938900000      0.928200000      0.929600000      0.000107000      0.000074000
    205.000000000   2001.000000000      2.000000000      7.000000000      0.929500000      0.935200000      0.926100000      0.928800000      0.000091000      0.000107000
    206.000000000   2001.000000000      2.000000000      8.000000000      0.928900000      0.929200000      0.915300000      0.918700000      0.000139000      0.000091000
    207.000000000   2001.000000000      2.000000000      9.000000000      0.918800000      0.927800000      0.913500000      0.924000000      0.000143000      0.000139000

 Columns 11 through 14:

      0.013034000      0.010134000     -0.003166000      0.009034000
      0.015680000      0.015480000     -0.000520000      0.014180000
      0.008134000      0.003134000     -0.005166000     -0.004266000
      0.010094000      0.004494000     -0.005806000     -0.001206000
      0.003034000      0.003034000     -0.000066000      0.002734000
      0.007252000      0.004452000     -0.002948000     -0.002348000
      0.010486000      0.001486000     -0.009214000     -0.007814000
      0.008918000      0.005518000     -0.003582000     -0.000882000
      0.013622000      0.000022000     -0.013878000     -0.010478000
      0.014014000      0.008714000     -0.005586000      0.004914000

Я определяю некоторые переменные, чтобы помочь определить, какие конкретно c столбцы я использую:

YEAR = 2;
MONTH = 3;
DAY = 4;
CLOSE = 8;

Затем я хочу построить вся серия, поэтому я делаю это:

figure(3)
xdates = datenum(data(:,YEAR),data(:,MONTH),data(:,DAY))
subplot(2,1,1); plot(xdates, data(:,CLOSE))
set(gca, "xtick", datenum (2000:2:2020,1,1));
set(gca,'xticklabel',{[]})
title("EURUSD 2000-2019");
subplot(2,1,2); plot(xdates, data(:,ATR))
set(gca, 'xtick', datenum (2000:2:2020,1,1));
datetick("x", 'yy/mm', "keepticks");

Тогда я получаю:

subplot

Пока все хорошо (xlabels может не читать, но это нормально, я могу отформатировать с помощью "YY", и они могут быть прочитаны). Теперь я хочу отобразить график между 2019,1,1 и 2020,1,1. Я пробовал:

figure(3)
xdates = datenum(data(:,YEAR),data(:,MONTH),data(:,DAY))
subplot(2,1,1); plot(xdates, data(:,CLOSE))
set(gca, "xtick", datenum (2000:2:2020,1,1));
set(gca,'xticklabel',{[]})
xlim(datenum (2019:1:2020,1,1));
title("EURUSD 2000-2019");
subplot(2,1,2); plot(xdates, data(:,ATR))
set(gca, 'xtick', datenum (2000:2:2020,1,1));
xlim(datenum (2019:1:2020,1,1));
datetick("x", 'yy/mm', "keepticks");

Но я получаю:

xaxisrange2

Что нужно сделать, чтобы график отображал значения между 2019 , 1,1 и 2020,1,1?

...