Matlab,changin x-axis在colormap上的日期

时间:2015-11-26 09:12:53

标签: matlab matlab-figure

我试图在Matlab中使用色彩映射制作时空图。在x轴上我希望时间格式为'HH:mm'。问题是,如果图表的x轴不正确,或者图表消失

numberOfCells = 50;
numberOfTimeSteps = 120;

for i = 1:numberOfCells
    for j = 1:numberOfTimeSteps
        temp(i,j) = rand*10;
    end
end
% to use this function, the array temp needs to be an array of           size[rows=numberOfcells, columns=numberOfTimesteps]
% make the startTime and endTime to the strings
startTimeString = '2013-03-21 08:00:00';
endTimeString = '2013-03-21 10:00:00';

formatOut = 'HH:MM';
% convert startTimeString and endTimeString into serial date number
startTimeNum = datenum(datestr(startTimeString,formatOut));
endTimeNum = datenum(datestr(endTimeString,formatOut));

xData = linspace(startTimeNum,endTimeNum,numberOfTimeSteps/30 + 1);

% load the colormap from mycmap.mat 
figure(1)
imagesc(temp);
colormap;
colorbar;
ax = gca;
ax.XTick = xData;
datetick('x',formatOut,'keepticks')

1 个答案:

答案 0 :(得分:0)

简单的解决方案是在调用imagesc作为

时直接设置轴

imagesc(xData, 1:50, temp);

然后您可以毫无问题地拨打datetick。潜在的问题是图像(由imagesc创建)与matlab中的图形及其关联轴有点奇怪地相互作用。您可以通过设置' XTickLabel'而不是' Xtick'来使轴显示正确的数字。但是当我尝试将它转换为日期时,由于某种原因,它们都显示为时间00:00,我不明白。