美文网首页
流程图、机器学习、模型训练可视化(DAG)的前端实现

流程图、机器学习、模型训练可视化(DAG)的前端实现

作者: 张力中 | 来源:发表于2019-09-25 12:08 被阅读0次

之前写过从0到1的前端DAG实现流程.
为了方便有需要的同学使用,
现推出npm插件形式的版本.
可以通过
npm install --save
在vue项目中快速使用.

image.png

效果展示

  • 画布移动 / 复原


    [图片上传中...(画布缩放.gif-823313-1567493208259-0)]
  • 画布缩放 / 复原


    画布缩放.gif
  • 拖动节点


    节点拖动gif.gif
  • 框选拖动多个节点


    框选拖动gif.gif
  • 添加节点


    添加节点gif.gif
  • 删除节点


    删除节点.gif
  • 添加节点关系


    添加节点关系gif.gif
  • 删除节点关系


    删除节点关系gif.gif
  • 添加节点入口 / 出口


    节点出入口添加gif.gif
  • 展示模型训练流程 ( 自定义用法需自行开发 )


    节点训练gif.gif

使用方法

  • 基础安装
npm install --save dag-board

vue项目的main.js中

import DAGBoard from 'dag-board'
Vue.use(DAGBoard)

具体文件里中

    <DAGBoard :DataAll="DataAll" @updateDAG="updateDAG" @editNodeDetails="editNodeDetails"></DAGBoard>
DataAll: 数据源
updateDAG:每次动作行为会抛出最新的数据, 和对应事件名称.
editNodeDetails: 可选内容,右键点击节点会带出节点数据,用此方法接受, 进行二次开发.比如更改节点携带的数据等.
  • 高级安装 (动态添加节点的时候模拟用)
    <node-bus v-if="nodeBusDragging" //  是否正在添加节点
    :value="nodeName"                       //   模拟的节点名称
    :pos_x="nodeBusPositionX"          //   动态赋值 鼠标位置的x坐标 
    :pos_y="nodeBusPositionY" />      //   动态赋值 鼠标位置的y坐标

以上内容均可前往github 下载项目查看使用过程, 熟练使用vue即可无障碍阅读代码.

数据源的扩展性 / 样式自定义

为了更多同学能友好体验,在github右侧有JSON模拟器.使用如下图.

  • 节点自定义


    节点自定义.gif
一份完整的节点包括以下几个内容
{
            "id": 1,                             // 节点id
            "in_ports": [ 0 ],                   // 入口下标
            "name": "NODE_PARENT",               // 节点名称
            "out_ports": [ 0, 1 ],               // 出口下标
            "pos_x": 157,                        // 节点坐标 距离左侧
            "pos_y": 120,                        // 节点坐标 距离顶部
            "nodeStyle": {                       /* 非必要 节点样式 */ 
                "border": "2px solid red"
            },
            "iconStyle": {                       /* 非必要 节点icon样式 */
                "background": "red"
            },
            "iconClassName": "el-icon-link",     /* 非必要  节点icon的类名 */
            "nameDescribe": "气泡内容",           /* 非必要 气泡内容 */               
        },
  • 节点关系自定义


    节点关系自定义gif.gif
// 一份完整的节点关系包括以下几个内容
"edges": [
        {
            "dst_input_idx": 0,  // 来源节点出口的下标
            "dst_node_id": 2,    // 来源节点的id
            "id": 1,             // 节点的id
            "src_node_id": 1,    // 目标节点的id
            "src_output_idx": 0  // 目标节点的入口下标
            "style": { }      /* 非必要 自定义节点样式 */
        }
    ],

更多内容移步github~ 戳我到github

很多内容致敬了阿里PAI的早期样式
如果使用当中有任何问题或者实现不了的需求,
可以qq群艾特我.793841737.
今天是这个项目github破百赞的日子, 希望能帮助到更多的同学~

相关文章

网友评论

      本文标题:流程图、机器学习、模型训练可视化(DAG)的前端实现

      本文链接:https://www.haomeiwen.com/subject/nioqyctx.html