【问题标题】:How to plot biannual data in Matlab如何在 Matlab 中绘制半年度数据
【发布时间】:2017-05-16 07:30:16
【问题描述】:

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

ExampleData = [5; 1; 3; 2; 1; 5]

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

我怎样才能有效地转换我的数据以制作带有有意义的轴的图,或者反过来,我可以为这些半年一次的数据使用哪种类型的轴?

【问题讨论】:

  • 这太宽泛了,请给我们示例数据等,以便我们提供更好的帮助。如果您使用的是 Matlab 的 datetime 变量类型,那么您可以正常绘图,而无需“制作日期轴”
  • 好吧,我添加了更多细节,见上文。

标签: matlab plot


【解决方案1】:

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

startdate = datetime(2008, 1, 1); % 1st Jan 2008

然后,根据您的示例数据,创建一个以 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

输出:

【讨论】:

  • 完美!一个后续问题:我如何更改我的轴,以便它始终标记为一月和七月。因为我的总是在变化,它从 11 月开始,然后是 9 月、7 月等等......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多