如何在Matlab中绘制半年数据

如何在Matlab中绘制半年数据,matlab,plot,Matlab,Plot,我每年有2个数据点,一个用于上半年,一个用于下半年。如何在Matlab中绘制它们?例如: ExampleData = [5; 1; 3; 2; 1; 5] 其中ExampleData(1)是2008年上半年的值,ExampleData(2)是2008年下半年的值,ExampleData(3)是2009年上半年的值,等等。Matlab datetime命令仅适用于每月或每日数据 我如何有效地转换数据,以绘制具有意义的轴的图,或者反过来,我可以使用哪种类型的轴来处理这些半年一次的数据?您可以为第一

我每年有2个数据点,一个用于上半年,一个用于下半年。如何在Matlab中绘制它们?例如:

ExampleData = [5; 1; 3; 2; 1; 5]
其中ExampleData(1)是2008年上半年的值,ExampleData(2)是2008年下半年的值,ExampleData(3)是2009年上半年的值,等等。Matlab datetime命令仅适用于每月或每日数据


我如何有效地转换数据,以绘制具有意义的轴的图,或者反过来,我可以使用哪种类型的轴来处理这些半年一次的数据?

您可以为第一个数据点选择一个开始日期

startdate = datetime(2008, 1, 1); % 1st Jan 2008
然后,给定示例数据,创建一个datetime向量,该向量的间隔为6个月,并与数据的长度相匹配

ExampleData = [5; 1; 3; 2; 1; 5];
dates = startdate + calmonths((0:numel(ExampleData)-1)*6);
% dates = [01-Jan-2008, 01-Jul-2008, 01-Jan-2009, 01-Jul-2009, ...]
那么绘图就很容易了

plot(dates, ExampleData);          % plot
set(gca, 'xtick', datenum(dates)); % Set x-axis ticks to be fixed 6-monthly
输出:


这太宽泛了,请给出示例数据等,以便我们能更好地提供帮助。如果您使用的是Matlab的datetime变量类型,那么您可以正常绘图,而不需要“生成日期轴”。好的,我添加了更多细节,请参见上文。完美!一个后续问题:如何更改轴,使其始终标记为一月和七月。因为我的总是在变化,它从十一月开始,然后是九月,七月等等。。。