Matlab图窗曲线太多,标签颜色分辨度不高的解决方法
例如上图中,曲线多,标签颜色分辨度不高,单纯靠眼里难以分辨对应特征的曲线。这种情况下可以使用legend自带的属性,做交互性处理,点击标签可以将曲线隐藏,再点一下又可以显示,这样就可以把曲线分辨出来。具体实现如下。
以上是matlab中legend的帮助文档描述,更多功能可以参见帮助文档。
1. 将以下代码复制到一个新的函数文件,然后将其以 hitcallback_ex1.m
的名称保存在当前文件夹或 MATLAB 搜索路径上的某个文件夹中。两个输入参数 src
和 evnt
为图例对象和事件数据结构体。当您点击图例中的项目时,MATLAB 会将这些输入自动传递给回调函数。使用事件数据结构体的 Peer
字段访问与所点击的图例项目关联的图形对象属性。
function hitcallback_ex1(src,evnt)
if strcmp(evnt.Peer.Visible,'on')
evnt.Peer.Visible = 'off';
else
evnt.Peer.Visible = 'on';
end
end
-
然后,绘制四条线条、创建一个图例并将图例对象赋给变量。将图例对象的
ItemHitFcn
属性设置为回调函数。点击图例中的项目以显示或隐藏所关联的图形。当您隐藏图形时,图例标签会更改为灰色。plot(rand(4)); l = legend('Line 1','Line 2','Line 3','Line 4'); l.ItemHitFcn = @hitcallback_ex1;
这么做就能实现曲线的分辨,唯一有点不足的就是,有点吃内存。