Matlab线图:是否可以单独设置标记线宽?

问题描述 投票:0回答:1

有没有办法在Matlab图中单独设置标记线宽?

如果我们使用'LineWidth',它将改变标记边缘和线条本身的宽度。我们可以在两个单独的plot函数中绘制标记和线,但是,设置图例时会出现问题。

matlab matlab-figure
1个回答
1
投票

这似乎是可能的,但它没有记录。

Line对象有一个隐藏属性MarkerHandle,它引用代表绘制标记的Marker对象;这个对象有自己的LineWidth属性。绘制标记后,Marker对象的LineWidth属性会独立于主LineWidth对象上的Line属性影响标记线宽度。这允许你这样做:

hLine = plot(myData, 'Marker',myMarkerType, 'LineWidth',myMainLineWidth);
drawnow;
hLine.MarkerHandle.LineWidth = myMarkerLineWidth;

但是,此属性似乎不会影响图例中的行条目。这也可以通过无证件属性访问。

hLegend = legend;
drawnow;
lineEntry = findobj(hLegend.EntryContainer, 'Object',hLine);
entryMarker = findobj(lineEntry.Icon.Transform, 'Description','Icon Marker');
entryMarker.LineWidth = myMarkerLineWidth;

这在MATLAB R2018b中适用于我,但由于没有记录,因此无法保证结果的行为与您期望的完全相同。特别是,您可能需要注意您使用记录的功能对您的绘图进行的其他更新自动覆盖您的手动更改,这些更新会导致重绘标记。

© www.soinside.com 2019 - 2024. All rights reserved.