gpt4 book ai didi

matlab - 如何使用 MATLAB 中的线或注释对象绘制轴外的对象?

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:11 24 4
gpt4 key购买 nike

我想在 MATLAB 图中轴外的每个数据点创建一 strip 有圆形标记的线,类似于什么

line([x1 x2],[y1 y2],'Color','k','Marker','o')

会产生。

为了将线对象放置在坐标轴之外,我只是尝试使用 annotation:

annotation('line',phi1([x1 x2]),phi2([y1 y2]),'Color','k','Marker','o')

其中 phi1phi2 是适当的坐标变换,以适应轴内的坐标 xy当前数字。

我希望它能工作,因为线对象有一个 marker 属性。但是,使用 annotation,我收到以下错误消息:

Error using matlab.graphics.shape.Line/set
There is no Marker property on the Line class.

Error in matlab.graphics.chart.internal.ctorHelper (line 8)
set(obj, pvpairs{:});

Error in matlab.graphics.shape.Line

Error in annotation (line 128)
h = matlab.graphics.shape.Line(aargs{:});

同样,使用annotation 函数绘制矩形时,不能设置Curvature 属性。似乎 annotation 不支持这些类型的属性,即使它创建了一个直线或矩形对象,就像 linerectangle 函数一样.我试着摆弄注释句柄和子句,但没有成功。

有什么解决方法吗?

最佳答案

different types of annotation objects是一组与通常的类类型不同的类类型 linerectangle对象,支持一组减少的属性。例如,典型的 line 对象的类类型为 matlab.graphics.primitive.Line,但注释线对象的类类型为 matlab.graphics.shape .线.

而不是使用 annotation对象,您可以简单地设置 'Clipping' propertylinerectangle 对象设置为 'off' 以允许它们在轴限制之外单独呈现。例如,这段代码:

hAxes = subplot(1, 2, 1);
axis(hAxes, [0 1 0 1]); % Freeze axis limits
hLine = line([0.5 2], [0.5 0.5], 'Color', 'k', ...
'Marker', 'o', ...
'Clipping', 'off');
hRect = rectangle(hAxes, 'Position', [1.5 0.1 1 0.25], ...
'Curvature', [0.2 0.2], ...
'FaceColor', 'r', ...
'Clipping', 'off');

产生这个情节:

enter image description here

或者,您可以通过转动 'Clipping' property 来关闭轴的所有 对象的裁剪。 axes'off'

关于matlab - 如何使用 MATLAB 中的线或注释对象绘制轴外的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56671132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com