设置每小时 x 轴以在 Matlab 中绘制 Accumarray
Setting an Hourly x-Axis to plot Accumarray in Matlab
在 matlab 中,我使用 accumarray() 创建了一个包含 3 列整数的新向量。第一列:日期(就是那一天);第 2 列:小时;第 3 列:样本值。
19.0000 9.0000 25.6937
19.0000 10.0000 30.2616
19.0000 11.0000 32.2840
19.0000 12.0000 28.4867
19.0000 14.0000 35.4055
19.0000 16.0000 48.3377
现在我绘制图表的代码涉及以下内容;
xdate = datenum(year,month,day,hourVector,minutes,seconds);
plot(xdate,sampleValue,'-x','MarkerSize',10)
datetick('x','ddd HHPM')
我找不到一种方法,其中 x 轴每小时(或 2 小时)标记一次。谢谢
我想您只是希望 x 刻度间隔 1 小时,而与数据间隔无关?从您的示例中,我看不出您必须每小时有一个数据点。
如果我的理解正确,请尝试替换
datetick('x','ddd HHPM')
具有以下内容:
hr_step = 0.0417; % increasing datenum by this amount will advance date by 1 hour
tick_xdate = min(xdate):hr_step:max(xdate);
set(gca,'XTick',tick_xdate)
datetick('x','ddd HHPM','keepticks') % 'keepticks' option forces the use of tick_xdate
在 matlab 中,我使用 accumarray() 创建了一个包含 3 列整数的新向量。第一列:日期(就是那一天);第 2 列:小时;第 3 列:样本值。
19.0000 9.0000 25.6937
19.0000 10.0000 30.2616
19.0000 11.0000 32.2840
19.0000 12.0000 28.4867
19.0000 14.0000 35.4055
19.0000 16.0000 48.3377
现在我绘制图表的代码涉及以下内容;
xdate = datenum(year,month,day,hourVector,minutes,seconds);
plot(xdate,sampleValue,'-x','MarkerSize',10)
datetick('x','ddd HHPM')
我找不到一种方法,其中 x 轴每小时(或 2 小时)标记一次。谢谢
我想您只是希望 x 刻度间隔 1 小时,而与数据间隔无关?从您的示例中,我看不出您必须每小时有一个数据点。
如果我的理解正确,请尝试替换
datetick('x','ddd HHPM')
具有以下内容:
hr_step = 0.0417; % increasing datenum by this amount will advance date by 1 hour
tick_xdate = min(xdate):hr_step:max(xdate);
set(gca,'XTick',tick_xdate)
datetick('x','ddd HHPM','keepticks') % 'keepticks' option forces the use of tick_xdate