Datetick每年都会展示MATLAB

时间:2017-05-04 16:49:36

标签: matlab

我有一个情节,当使用datetick时,它只显示了几年。我希望每年都有x轴显示。

请注意,x由每日障碍组成,我想每年仅显示轴(但每天保持阻力)

我试过了:

figure;
bar(x, y, 'Stack'); 
datetick('x', 'yyyy', 'keeplimits', 'keepticks');
set(gca,'XTick', unique(year(x)) )

但这会删除x标签上的所有刻度

1 个答案:

答案 0 :(得分:2)

也许这可以让你开始:

% sample data
x = datetime - 10000:datetime;
y = sin(1:10001);

figure;
bar(x, y, 'Stack'); 

% compute datetime array with each year
range       = unique(year(x));
yearticks   = datetime(range,ones(size(range)),ones(size(range)));

% update figure
set(gca, 'XTick', yearticks)
set(gca, 'XTickLabelRotation', 90)

直接在unique(year(x))调用中使用set将无效,因为它将返回double数组,而不是datetime数组。刻度将偏离显示的轴限制,因此不可见。

注意:刻度将标记为每年的1月1日。如果您想标记一年中,您需要在创建datetime的行中将调用调整为yearticks