Matlab:金融时间序列图 xTickLable 错误?
Matlab: Financial time series plot xTickLable bug?
我认为这可能是一个错误。我正在使用 Matlab 2015a。在我创建了一个 fints(金融时间序列)对象之后,当我试图绘制它时,xTickLabel 在我放大时不会更新。如果我将 xTickMode
设置为 Auto
,那么它会搞砸本身。
我做到了。你可以简单地做同样的事情,看看会发生什么:
% Create financial time series:
url_1 = fred('https://research.stlouisfed.org/fred2/');
FredData = fetch(url_1, 'PERMIT');
dates = FredData.Data(:,1);
Data = FredData.Data(:,2);
fts = fints(dates, Data , 'PERMIT');
close(url_1);
%% Plot
F1 = figure;
h1 = plot (fts.PERMIT);
此处如果放大,则 yTickLabel 将更新,但 xTickLabel 不会更新。
如果您键入 get(gca, 'yTickMode')
,您将得到 auto
。如果您键入 get(gca, 'xTickMode')
,您将得到 manual
。
问题来了。如果你试图修复 xTickLable 缺少自动更新的问题,你自然会输入 set(gca, 'xTickMode', 'auto')
。之后,你得到的是一个乱七八糟的 xTickLable。
这不是一个难以阅读的问题,可以通过旋转 xTickLabel 来解决。时间本身会变得混乱,以至于当您查看图表时,您不再知道数据是在什么时间注册的。你可以自己试一下,然后你就会明白我的意思了。
我的问题是,如何解决或绕过这个问题。
谢谢!
您可以通过使用 plot
及其常用语法来解决此问题,然后设置 x-tick-label 格式:
plot(datetime(datestr(dates)),Data)
xtickformat('dd-MMM-yyyy');
legend('PERMIT')
grid on
我认为这可能是一个错误。我正在使用 Matlab 2015a。在我创建了一个 fints(金融时间序列)对象之后,当我试图绘制它时,xTickLabel 在我放大时不会更新。如果我将 xTickMode
设置为 Auto
,那么它会搞砸本身。
我做到了。你可以简单地做同样的事情,看看会发生什么:
% Create financial time series:
url_1 = fred('https://research.stlouisfed.org/fred2/');
FredData = fetch(url_1, 'PERMIT');
dates = FredData.Data(:,1);
Data = FredData.Data(:,2);
fts = fints(dates, Data , 'PERMIT');
close(url_1);
%% Plot
F1 = figure;
h1 = plot (fts.PERMIT);
此处如果放大,则 yTickLabel 将更新,但 xTickLabel 不会更新。
如果您键入 get(gca, 'yTickMode')
,您将得到 auto
。如果您键入 get(gca, 'xTickMode')
,您将得到 manual
。
问题来了。如果你试图修复 xTickLable 缺少自动更新的问题,你自然会输入 set(gca, 'xTickMode', 'auto')
。之后,你得到的是一个乱七八糟的 xTickLable。
这不是一个难以阅读的问题,可以通过旋转 xTickLabel 来解决。时间本身会变得混乱,以至于当您查看图表时,您不再知道数据是在什么时间注册的。你可以自己试一下,然后你就会明白我的意思了。
我的问题是,如何解决或绕过这个问题。
谢谢!
您可以通过使用 plot
及其常用语法来解决此问题,然后设置 x-tick-label 格式:
plot(datetime(datestr(dates)),Data)
xtickformat('dd-MMM-yyyy');
legend('PERMIT')
grid on