以编程方式获取 Octave 中的标签

Programmatically getting the labels in Octave

在 Octave 中,当我绘图时,我可以获得绘图对象。例如

pl = get(plot(...))

然后我可以指定标签,例如:

xlabel("something")

我正在开发一个自动评分器,需要从绘图对象 pl 检查 xlabel 的内容。我想我可以说

disp(all(pl.xlabel == "something"))

但是,我收到一条错误消息,指出 xlabel 不属于绘图对象。

如果只有一个坐标轴对象,可以用gca获取当前坐标轴对象,然后通过坐标轴对象获取标签等。

ax = gca
disp(get(get(ax, "XLabel") "String"))

如果您在不同的图形上有多个绘图并且没有图形句柄,您可以在获取图形的地方执行以下操作,而不是直接使用 gca:

p1 = plot((1:10).^2);
p2 = plot((1:10).^4);
xlabel('Matt');
fig = ancestor(p1, 'figure');
ax = get(fig, "CurrentAxes");
disp(get(get(ax, "XLabel") "String"))