在 MATLAB 中将 datetick 与 keepticks 一起使用
Using datetick with keepticks in MATLAB
我想显示一个长度为 (24*60*60) 的数组。 x 轴是一天中的时间。
当我使用下面的代码时,x轴显示00:00:00, 00:59:59, 01:59:59, ..., 23:59:59
,但是图中没有绘图。即 plot(1:length(A),A)
没有作用。 (我也试过转动 on/off hold
开关,和 24
/24+1
)
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,24+1);
plot(1:length(A),A);
set(gca,'XTick',xData);
datetick('x','HH:MM:SS','keepticks');
当我尝试以下代码时,绘图可以正常显示。但是,x轴变成了00:00:00, 02:24:00, 04:48:00, ..., 21:36:00, 00:00:00
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,86400);
plot(xData,A);
datetick('x','HH:MM:SS','keepticks');
我也试过这个版本
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,86400+1);
plot(xData,[A,0]);
datetick('x','HH:MM:SS','keepticks');
x轴还是00:00:00, 02:24:00, 04:48:00, ..., 21:36:00, 00:00:00
,可以正常显示plot
有什么方法可以把x轴设置成00:00:00, 01:00:00, 02:00:00, ..., 23:00:00, 00:00:00
或者00:00:00, 00:59:59, 01:59:59, ..., 23:59:59
?
非常感谢!
问题出现于首先在区间 [1,numel(A)]
上绘制,然后将刻度设置在 [xData(1),xData(end)]
。
您可以通过在 xData
:
范围内绘制 A
来解决这个问题
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,24+1);
plot(linspace(x0,x1,numel(A)),A); % change here
set(gca,'XTick',xData);
datetick('x','HH:MM:SS','keepticks');
此外,添加行
set(gca,'XTickLabelRotation',45); % or some angle
提高了刻度标签的可读性。
我想显示一个长度为 (24*60*60) 的数组。 x 轴是一天中的时间。
当我使用下面的代码时,x轴显示00:00:00, 00:59:59, 01:59:59, ..., 23:59:59
,但是图中没有绘图。即 plot(1:length(A),A)
没有作用。 (我也试过转动 on/off hold
开关,和 24
/24+1
)
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,24+1);
plot(1:length(A),A);
set(gca,'XTick',xData);
datetick('x','HH:MM:SS','keepticks');
当我尝试以下代码时,绘图可以正常显示。但是,x轴变成了00:00:00, 02:24:00, 04:48:00, ..., 21:36:00, 00:00:00
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,86400);
plot(xData,A);
datetick('x','HH:MM:SS','keepticks');
我也试过这个版本
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,86400+1);
plot(xData,[A,0]);
datetick('x','HH:MM:SS','keepticks');
x轴还是00:00:00, 02:24:00, 04:48:00, ..., 21:36:00, 00:00:00
,可以正常显示plot
有什么方法可以把x轴设置成00:00:00, 01:00:00, 02:00:00, ..., 23:00:00, 00:00:00
或者00:00:00, 00:59:59, 01:59:59, ..., 23:59:59
?
非常感谢!
问题出现于首先在区间 [1,numel(A)]
上绘制,然后将刻度设置在 [xData(1),xData(end)]
。
您可以通过在 xData
:
A
来解决这个问题
A = rand(1,86400);
x0 = datenum('00:00:00','HH:MM:SS');
x1 = datenum('23:59:59','HH:MM:SS');
xData = linspace(x0,x1,24+1);
plot(linspace(x0,x1,numel(A)),A); % change here
set(gca,'XTick',xData);
datetick('x','HH:MM:SS','keepticks');
此外,添加行
set(gca,'XTickLabelRotation',45); % or some angle
提高了刻度标签的可读性。