无法在 Matlab 中使用 `datetime` 数据类型绘制 `errorbar`

Unable to plot `errorbar` work with `datetime` datatype in Matlab

我想在 x 轴上用 datetime 绘制 errorbar

x = datetime(['21-Aug-2019'; '22-Aug-2019'; '23-Aug-2019']);
y = [100; 110; 130];
figure
plot(x,y, '.')
hold on
errorbar(x, y, 20)

最后一行产生了这个错误—— Error using errorbar (line 76) Input arguments must be numeric or objects which can be converted to double. 即使是以下也会产生错误

errorbar(datenum(x), y, 20*ones(size(y)))

我正在使用 R2016b

errorbar 不支持 datetime 对象。您可以使用 datenumdatetick。 datenum 会将包含日期的字符串向量转换为双精度向量。现在 x 是一个双向量,它可以在 errorbar.

中使用

最后使用 datetick 将您的 x 标签转换为人类可读的日期格式。

x = datenum(['21-Aug-2019'; '22-Aug-2019'; '23-Aug-2019']);
y = [100; 110; 130];

figure
hold on
plot(x,y, '.')
errorbar(x, y, [20;20;20])

datetick('x','dd-mmm-YYYY')