添加自定义数据提示绘图运行实时

11次浏览(过去30天)
我正在设计一个应用程序,它可以实时绘制7条不同的线,以表明某些值是如何随时间变化的。我试图为每一行创建自定义数据提示,绘制以显示当时所有其他行的值以及一些额外的值。当我在最初创建图形时创建自定义数据提示时,所有自定义数据提示行都不显示任何值,只显示标签。我尝试创建一个函数来再次调用自定义数据提示函数,以便使用我试图包含在数据提示中的变量的最新值进行更新。当我这样做时,我得到一个错误说 值必须与数据源兼容 ”。有什么方法可以在实时绘图时更新自定义数据提示吗?我正在使用的函数如下所示。
函数CreateDataTips(应用)
丢弃线路数据提示
app.discardsplot.DataTipTemplate.DataTipRows(1)。标签=“日期时间”
app.discardsplot.DataTipTemplate.DataTipRows(2)。标签=“包丢弃”
app. discardplot . datatiptemplate . datatiprows (3) = dataTipTextRow(“包重试”, app.Retries_all);
app. discardplot . datatiptemplate . datatiprows (4) = dataTipTextRow(“包失败”, app.Fails_all);
app. discardplot . datatiptemplate . datatiprows (5) = dataTipTextRow(位收到的, app.Recieved_all);
app. discardplot . datatiptemplate . datatiprows (6) = dataTipTextRow(“发送”, app.Sent_all);
app. discardplot . datatiptemplate . datatiprows (7) = dataTipTextRow(“RSSI”, app.RSSI_all);
app. discardplot . datatiptemplate . datatiprows (8) = dataTipTextRow(“信噪比”, app.SNR_all);
app. discardplot . datatiptemplate . datatiprows (9) = dataTipTextRow(“TX率”, app.Rate_all);
%重试线路数据提示
%……其他6行也一样
结束
函数UpdateDataTips(应用)
丢弃线路数据提示
app.discardsplot.DataTipTemplate.DataTipRows(3)。Value = app.Retries_all;
app.discardsplot.DataTipTemplate.DataTipRows(4)。Value = app.Fails_all;
app.discardsplot.DataTipTemplate.DataTipRows(5)。Value = app.Recieved_all;
app.discardsplot.DataTipTemplate.DataTipRows(6)。Value = app.Sent_all;
app.discardsplot.DataTipTemplate.DataTipRows(7)。Value = app.RSSI_all;
app.discardsplot.DataTipTemplate.DataTipRows(8)。Value = app.SNR_all;
app.discardsplot.DataTipTemplate.DataTipRows(9)。Value = app.Rate_all;
%重试线路数据提示
%……其他6行也一样
1评论
尼克Nauman
尼克Nauman 2021年7月23日
是否有人能够提供关于在自定义数据提示中根据绘图上其他可实时更新的行提供值的选项的更新?我一直在研究这个问题,但我仍然找不到解决办法

登录评论。

接受的答案

尼克Nauman
尼克Nauman 2021年7月26日
我发现更新DataTipTemplate属性的Value字段的唯一方法是首先删除该属性,然后重新创建数据提示。参考以下代码:
函数CreateDataTips(应用)
丢弃线路数据提示
app.discardsplot.DataTipTemplate.DataTipRows(1)。标签=“日期时间”
app.discardsplot.DataTipTemplate.DataTipRows(2)。标签=“包丢弃”
app. discardplot . datatiptemplate . datatiprows (3) = dataTipTextRow(“包重试”, app.Retries_all);
app. discardplot . datatiptemplate . datatiprows (4) = dataTipTextRow(“包失败”, app.Fails_all);
app. discardplot . datatiptemplate . datatiprows (5) = dataTipTextRow(位收到的, app.Recieved_all);
app. discardplot . datatiptemplate . datatiprows (6) = dataTipTextRow(“发送”, app.Sent_all);
app. discardplot . datatiptemplate . datatiprows (7) = dataTipTextRow(“RSSI”, app.RSSI_all);
app. discardplot . datatiptemplate . datatiprows (8) = dataTipTextRow(“信噪比”, app.SNR_all);
app. discardplot . datatiptemplate . datatiprows (9) = dataTipTextRow(“TX率”, app.Rate_all);
%重试线路数据提示
%……其他6行也一样
结束
函数DeleteDataTips(应用)
丢弃线路数据提示
删除(app.discardsplot.DataTipTemplate);
%重试线路数据提示
%……其他6行也一样
结束
我还没有机会测试每一秒钟做一次(更新数据的频率)会有多消耗资源,尤其是当数据量越来越大的时候。有人知道这是最有效的解决方案吗?

更多答案(0)

类别

了解更多图形性能帮助中心而且文件交换

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!