X轴日期在Matlab图中是错误的

时间:2015-07-02 02:33:20

标签: matlab date axis-labels

我的日期格式为'yyyymmdd'。当我把这些放在我的情节的X轴上时,我得到了疯狂的数字。我的情节间隔是过去十年,但X轴刻度标签显示1979年和其他奇怪的数字。任何人都可以指出我正确的方向来纠正这个问题吗?感谢。

编辑:这是请求的代码:

TradeDate=TradeDate+693960; % convert excel serial dates to matlab serial dates
TradeDate=datestr(TradeDate,'mmddyyyy'); % convert the format into yyyymmdd
TradeDate=str2double(cellstr(TradeDate)); % convert the date strings first into cell arrays and then into a double

plot(TradeDate,beta);
xlabel('Date');
ylabel('Beta');
daspect([300 1 1]);
set(gca,'xtick',linspace(TradeDate(1),TradeDate(1715),50));
ax=gca;
ax.XTickLabelRotation=45;

1 个答案:

答案 0 :(得分:2)

当我怀疑你真的想要自己绘制日期字符串时,你正在做的是在x - 轴上绘制序列日期数字。

因此,首先使用序列日期编号生成图表,然后通过更改x - 轴标签来使用日期字符串。顺便说一下,使用str2double的代码是没有意义的,因为如果我正确地按照您对第一行代码的评论,那么已经一个序列日期。

这样的事情:

TradeDate=TradeDate+693960; % convert excel serial dates to matlab serial dates

%// Note change in variable name here and convert to cell array of strings
TradeDates=cellstr(datestr(TradeDate,'mmddyyyy')); % convert the format into mmddyyy

plot(TradeDate,beta);
xlabel('Date');
ylabel('Beta');
daspect([300 1 1]);
set(gca,'xtick',linspace(TradeDate(1),TradeDate(1715),50));
%// Change - Change x-axis labels
set(gca, 'XTickLabel', TradeDates(1:50:1715));
ax=gca;
ax.XTickLabelRotation=45;