我怎样才能在图形中只显示'n'个tick的日期时间标签,或者让octave为我选择一个好的tick数?

问题描述 投票:0回答:1

我想在一个超过5800行的矩阵中显示一列。

矩阵的第一列包含了该行对应的年、月、日。它跨越了近20年(但没有确切的日期,第一条记录始于2001年1月30日)----。

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

我定义了一些变量来帮助识别我使用的具体列。

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

然后我想绘制第8列(close)并在X轴上显示日期。我不知道我有哪些选项可以显示合理数量的日期。

这是我试过的。

figure(2)
xdates = datenum(data(:,YEAR),data(:,MONTH),data(:,DAY))
plot(xdates,data(:,CLOSE))
ax = gca
set (ax, "xtick", xdates);
datetick ("x", 1000, "keepticks");

但这产生了:

xticks

  1. 我怎样才能正确显示X轴的刻度,限制显示的刻度数?
  2. 是否可以只显示月年而不是日月年?
octave
1个回答
0
投票

我发现这是一个有效的选项。我将答案包括在内,以防对其他人有所帮助。

figure(2)
xdates = datenum(data(:,YEAR),data(:,MONTH),data(:,DAY))
plot(xdates,data(:,CLOSE))
ax = gca
set (ax, "xtick", datenum (2000:1:2020,1,1));
datetick("x", 'yy', "keepticks");
© www.soinside.com 2019 - 2024. All rights reserved.