如何让Matlab图例显示不透明标记,散点图标记设为半透明
单独调整Matlab图例标记的MarkerFaceAlpha属性
你可以在生成图例后,通过获取图例的子对象来单独修改标记的透明度,让图例显示不透明的标记,具体操作如下:
- 调用
legend后,用findobj定位图例中的标记元素(散点图的图例标记对应Line类型对象) - 遍历这些元素,将它们的
MarkerFaceAlpha设为1(完全不透明)
修改后的完整代码:
figure() scatter(X1,Y1,16, [0.9290, 0.6940, 0.1250],"filled",MarkerFaceAlpha=0.1,DisplayName='A') hold on scatter(X2, Y2,16, [0 0.4470 0.7410],"filled",MarkerFaceAlpha=0.1,DisplayName='B') hold off lgd = legend(Location="southwest",Box="off"); % 获取图例中的标记对象并修改透明度 legendMarkers = findobj(lgd, 'Type', 'Line'); set(legendMarkers, 'MarkerFaceAlpha', 1);
说明
散点图的MarkerFaceAlpha属性会被同步到自动生成的图例标记上,通过直接操作图例的子元素,可以快速覆盖这一继承的属性,让图例标记恢复清晰的不透明状态,同时保留绘图区域内散点的半透明效果。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

