matlab图例_Matlab复杂场景的图例使用

问题描述

一堆数据分批次使用算法进行处理,算法根据数据的特征将每批数据归类到A、B、C、D、E五个档次中的一个,并计算此种分类的概率。另有一图,记录所有批次数据的分类结果,横轴为批次,纵轴为概率,点的不同样式代表不同的分类档次,如图1所示。该图在线更新,即每运行一次算法,就在原图基础上加上一组数据的分类结果和概率。现需要为该图动态加上图例,说明图中出现的点与分类档次的对应关系。

a3c0d61f79ce8526cb1bbf2312a1eeff.png
图1 数据评估分类示例

解决方案:

目前考虑了一下方法:

  • 方法一

核心思想:根据分类结果将数据放在五个不同的数组中,每个数组存储数据所在组的索引和概率值,绘图时直接绘制五个数组中的数据并按照常规方法添加图例。

优点:简单易实现。

缺点:在该场景中,算法每执行一次就需要将新的结果添加到图中,若每次都绘制整个数组,效率不高,且随着数据量的增加,需要的存储空间越来越大。

  • 方法二

核心思想:对方法一进行改进,依然使用五个数组,但数组只保存第一次或最近一次该分类的索引和概率,每次绘制更新后再将数组中的五个点plot一次(如果某类型数组为空就不绘制该类型的点,后面的line对象集合中也不包含该类型),用元胞存下plot对象并使用legend(axes,[plot对象集合],{与line对象对应的字符串集合})方法添加图例,其中[]代表数组类型,{}代表元胞类型。

  • 方法三

核心思想:使用五个变量记录每个分类的数据组数,并将每个分类的最近一次plot对象存在元胞中,然后将变量转为logical类型,对plot对象进行筛选和图例字符串进行筛选。

str_legend 

注:引入计数变量来判断是否有对应类型的plot对象,这是因为元胞数组p的判空需要使用循环,计算量也比判断数值变量更大。

使用方法三运行效果如图2所示。

576cd94ed86be521db9971f56a56a78e.gif
图2 方法三效果图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值