mxgraph进阶(三)Web绘图——mxGraph项目实战(精华篇)

本文介绍了使用mxGraph实现用户交互图的实战经验,包括从日志数据生成有向图,优化双向边的显示,以及算法的挑战与改进。通过案例展示了如何将行为序列转换为关联矩阵,进而绘制出用户行为的交互图。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

Web绘图——mxGraph项目实战(精华篇)

声明

    本文部分内容所属论文现已发表,请慎重对待。

需求

      由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式,并且连接相邻动作的弧上标有执行此次相邻动作的频次,每个动作另附有一个数据集,这样有向图加数据集就构成了用户交互图。为此,自己想到了mxGraph,遂决定学习之。

起步

      此次项目实战是受阅读参考文献[1]启发,并在其图形布局实例基础上进行。其原始界面如图1所示,自己要实现的界面布局与之颇有几分神似。只是该布局界面不支持节点与边的定制,为此需要结合经典的“Hello world”实例,其原始界面布局如图2所示。

 

图1 graphlayout实例

 

图2 Hello World!实例

      由于自己是零基础开始学习这一Web绘图框架,首先是阅读其源码。有关mxgraph的启动加载原理及其元素了解,请阅读《mxgraph的初步介绍与开发入门》、《mxGraph教程-开发入门指南》两篇博文。

实例1源码阅读


  
  
  
  1. <!Doctype html>
  2. <html xmlns=http://www.w3.org/1999/xhtml>
  3. <head>
  4. <meta http-equiv=Content-Type content="text/html;charset=utf-8">
  5. <title>图形布局 </title>
  6. <!-- 如果本文件的包与src不是在同一个目录,就要将basepath设置到src目录下 -->
  7. <script type="text/javascript">
  8. mxBasePath = '../src';
  9. </script>
  10. <!-- 引入支持库文件 -->
  11. <script type="text/javascript" src="../src/js/mxClient.js"> </script>
  12. <!-- 示例代码 -->
  13. <script type="text/javascript">
  14. // 程序在此启动
  15. function main(container)
  16. {
  17. // 检测浏览器兼容性
  18. if (!mxClient.isBrowserSupported())
  19. {
  20. mxUtils.error( 'Browser is not supported!', 200, false);
  21. }
  22. else
  23. {
  24. // 在容器中创建图形
  25. var graph = new mxGraph(container);
  26. // 禁用选择和单元格处理
  27. graph.setEnabled( false);
  28. // 更改点风格的样式
  29. var style = graph.getStylesheet().getDefaultVertexStyle();
  30. style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE;
  31. style[mxConstants.STYLE_PERIMETER] = mxPerimeter.EllipsePerimeter;
  32. style[mxConstants.STYLE_GRADIENTCOLOR] = 'white';
  33. style[mxConstants.STYLE_FONTSIZE] = '10';
  34. // 设置容器随内容自适应
  35. //graph.setResizeContainer(true);
  36. // 设置图大小
  37. graph.gridSize = 40;
  38. // 创建默认窗体
  39. var parent = graph.getDefaultParent();
  40. // 创建新的布局算法
  41. var layout = new mxFastOrganicLayout(graph);
  42. // 移动距离
  43. layout.forceConstant = 80;
  44. // 动画效果选项
  45. var
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值