vehicle network communication chord
2015-06-01 00:14
260 查看
和弦图最早用于表现数据关联的可视化,是在生物学中基因组的比对,基于perl开发的circos工具[1]。这种可视化效果图最重要的特点就是,用类似多层极坐标的方式,描述了数据之间的结构,并用弦线表示数据之间的关联关系。
汽车上的分布式控制系统之间的通讯数据,也存在类似的结构和关联关系,例如:节点-报文-信号的组合结构关系,节点之间报文的收发关联关系等。这类通讯数据结构,往往代表了一个车型的核心协议设计。
传统的表格描述方式在展现这种复杂设计时,往往用一个大的二维矩阵,行列标题冠以各节点名称,对应单元格填上PDU(协议数据单元)的名称,这样仅能表示收发关系,通讯数据的详细信息只能用另外的表来描述。
最典型的是Excle用折叠的方式,来层层展开数据之间的组合关系,然后用多级标题矩阵来描述数据的特征。数据量一大就蔚为壮观,拖来拖去都看不到边,重复的标题和格式块占满了屏幕,要找的内容只能靠缩放来查找。
用和弦图的方式来表示汽车总线通讯矩阵其实很简单,在R中从导入dbc到用circlize成图[2],核心脚本不到20行。
以节点收发关系矩阵为例,上图中,圆周上弧度的长短表示所收发信号的bit位长度总和,Tx弧段引出的相同颜色和弦线指向接收节点。
与通信矩阵相比,由于圆周弧长与信号位长成正比,各ECU在总线上通讯的信息量就很容易看出来。发送信息量较大的BCM在弧度上占的比例就比较大,PDC和PEPS就比较小。
和表格中折叠或合并的处理方式不同,数据之间的组合关系可以更直观表现出来,用同心圆的方式从外向内套接多层弧段就可以了。如果上图表示的是CAN报文层的话,往外在套一个节点层,并调整颜色就可以表示节点与报文之间的发送关系了。报文与信号之间的包含关系类似。
更复杂一点的,还可以在弧段扇形区域,配以文字、折线图或表格等,描述更多地信号细节,如:周期、单位等。这样的话,就只能用交互图的方式,在Hint中展现细节了。
有一种说法,树是19世纪的图腾,matrix表是20世纪的图腾,21世纪该轮到网了。
转载请保持原文完整,并注明出处。
参考链接:
1. http://www.plob.org/tag/circos2
2. http://cran.r-project.org/web/packages/circlize/
汽车上的分布式控制系统之间的通讯数据,也存在类似的结构和关联关系,例如:节点-报文-信号的组合结构关系,节点之间报文的收发关联关系等。这类通讯数据结构,往往代表了一个车型的核心协议设计。
传统的表格描述方式在展现这种复杂设计时,往往用一个大的二维矩阵,行列标题冠以各节点名称,对应单元格填上PDU(协议数据单元)的名称,这样仅能表示收发关系,通讯数据的详细信息只能用另外的表来描述。
最典型的是Excle用折叠的方式,来层层展开数据之间的组合关系,然后用多级标题矩阵来描述数据的特征。数据量一大就蔚为壮观,拖来拖去都看不到边,重复的标题和格式块占满了屏幕,要找的内容只能靠缩放来查找。
用和弦图的方式来表示汽车总线通讯矩阵其实很简单,在R中从导入dbc到用circlize成图[2],核心脚本不到20行。
以节点收发关系矩阵为例,上图中,圆周上弧度的长短表示所收发信号的bit位长度总和,Tx弧段引出的相同颜色和弦线指向接收节点。
与通信矩阵相比,由于圆周弧长与信号位长成正比,各ECU在总线上通讯的信息量就很容易看出来。发送信息量较大的BCM在弧度上占的比例就比较大,PDC和PEPS就比较小。
和表格中折叠或合并的处理方式不同,数据之间的组合关系可以更直观表现出来,用同心圆的方式从外向内套接多层弧段就可以了。如果上图表示的是CAN报文层的话,往外在套一个节点层,并调整颜色就可以表示节点与报文之间的发送关系了。报文与信号之间的包含关系类似。
更复杂一点的,还可以在弧段扇形区域,配以文字、折线图或表格等,描述更多地信号细节,如:周期、单位等。这样的话,就只能用交互图的方式,在Hint中展现细节了。
有一种说法,树是19世纪的图腾,matrix表是20世纪的图腾,21世纪该轮到网了。
转载请保持原文完整,并注明出处。
参考链接:
1. http://www.plob.org/tag/circos2
2. http://cran.r-project.org/web/packages/circlize/
相关文章推荐
- 从百万级别数据的分析角度,Mysql,Mongodb,Hbase如何选择?
- SQL Server 开发指南---存储过程
- Curriculum Vita & Application Letter
- 人月到底有多少神话色彩
- centos7配置环境
- 人月到底有多少神话色彩
- 新浪微博产品管培生求职之路——微博发展史(二)
- Angular ng-repeat 不识别json问题
- 第一篇
- makefile 写法详解
- Android简单数据库操作练习
- GTK+实验
- 熬粥记:煮一碗红豆粥,3次才领悟煮粥大法
- PullToRefresh使用详解(三)--实现异步加载的下拉刷新列表
- 熬粥记:煮一碗红豆粥,3次才领悟煮粥大法
- UICollectionView基础
- Sicily 13981 Cow Baseball
- linux下arm驱动开发环境配置
- [Python]网络爬虫(九):百度贴吧的网络爬虫(v0.4)源码及解析
- sicily 1214 二进制回文数的证明