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

时间:2019-03-05 07:25:41

标签: matlab matlab-figure

是否可以在Matlab图中单独设置标记线的宽度?

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

1 个答案:

答案 0 :(得分: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中有效,但是由于未记录在案,因此无法保证结果会完全符合您的预期。特别是,您可能需要注意手动更改会被使用记录在案的功能(对标记进行重画)对图进行的其他更新自动覆盖。

相关问题