下载GoJS最新版本

GoJS是一个JavaScript库,可让您在现代Web浏览器中轻松创建交互式图表。 GoJS支持图形模板和图形对象属性的数据绑定以模拟数据。您只需要保存和恢复模型,该模型由包含应用程序所需属性的简单JavaScript对象组成。许多预定义的工具和命令实现了大多数图表所需的标准行为。外观和行为的定制主要是设置属性的问题。

一个简单的GoJS图

以下代码定义了一个节点模板和模型数据,它生成了一个包含少量节点和链接的小图。

   // For conciseness. See the "Building Parts" intro page for morevar $ = go.GraphObject.make;// the node template describes how each Node should be constructeddiagram.nodeTemplate =$(go.Node, "Auto",  // the Shape automatically fits around the TextBlock$(go.Shape, "RoundedRectangle",  // use this kind of figure for the Shape// bind Shape.fill to Node.data.colornew go.Binding("fill", "color")),$(go.TextBlock,{ margin: 3 },  // some room around the text// bind TextBlock.text to Node.data.keynew go.Binding("text", "key")));// the Model holds only the essential information describing the diagramdiagram.model = new go.GraphLinksModel([ // a JavaScript Array of JavaScript objects, one per node;// the "color" property is added specifically for this app{ key: "Alpha", color: "lightblue" },{ key: "Beta", color: "orange" },{ key: "Gamma", color: "lightgreen" },{ key: "Delta", color: "pink" }],[ // a JavaScript Array of JavaScript objects, one per link{ from: "Alpha", to: "Beta" },{ from: "Alpha", to: "Gamma" },{ from: "Beta", to: "Beta" },{ from: "Gamma", to: "Delta" },{ from: "Delta", to: "Alpha" }]);// enable Ctrl-Z to undo and Ctrl-Y to redodiagram.undoManager.isEnabled = true;

这将创建以下图表:

您可以通过多种方式与此图表进行交互:

  • 您可以通过单击选择零件。选定的节点用Adornment突出显示,Adornment是围绕节点的蓝色矩形。所选链接在链接路径后面以蓝线突出显示。
  • 可以一次选择多个部件。单击以添加到选择时按住Shift键。单击以切换是否选中该部件时按住Control键。
  • 多选的另一种方法是在背景中的某个点(而不是在某个部分上)进行鼠标按下,稍等片刻,然后拖动一个框。选择鼠标向上时框中的部件。Shift和Control修饰符也适用。
  • Ctrl-A选择图中的所有部分。
  • 通过选择并拖动来移动一个或多个节点。
  • 复制选定的部件可以使用复制/粘贴(Ctrl-C / Ctrl-V)或Ctrl-鼠标拖动。
  • 使用Delete键删除所选部件。
  • 如果滚动条可见或整个零件集合小于图表的可视区域(“视口”),则可以在背景中使用鼠标按下平移图表(而不是在零件上)等候。
  • 使用鼠标滚轮向上和向下滚动,使用Shift鼠标滚轮向左和向右滚动。Ctrl-mouse-wheel放大和缩小。

您还可以用手指在触摸设备上平移,捏放大,选择,复制,移动,删除,撤消和重做。大多数可以从键盘调用的命令都可以从默认的上下文菜单调用,您可以通过按下手指并保持静止一会儿来获得该命令。

文档中所有示例的独特之处在于它们都是“实时” - 没有屏幕截图!它们是由显示的源代码实现的实际Diagram。您可以与它们进行交互 - 有些甚至可以显示动画。

如果您想了解更多关于GoJS可以做什么的示例,请参阅GoJS Samples目录。为了便于搜索JavaScript代码和文档或通过修改示例进行实验,您可以通过各种方式安装GoJS工具包:

  • 从下载中下载ZIP文件。
  • 从GITHub上的GoJS下载我们。
  • 使用安装GoJS npm install gojs。

GoJS Concepts

图表 s由部分 s组成:节点可以通过链路连接,并且可以组合在一起成为组 s。所有这些部分都在图层中聚集在一起,并按布局排列。

每个图都有一个模型,用于保存和解释您的应用程序数据,以确定节点到节点的链接关系和组成员关系。大多数部件都是数据绑定到您的应用程序数据。该图自动为模型的Model.nodeDataArray中的每个数据项创建一个Node或Group, 并为模型的GraphLinksModel.linkDataArray中的每个数据项创建一个Link。您可以向每个数据对象添加所需的任何属性,但每种模型只需要几个属性。

每个节点或链接通常由声明其外观和行为的模板定义。每个模板由面板号第GraphObject S,从而如TextBlock的 S或形状秒。所有部件都有默认模板,但几乎所有应用程序都会指定自定义模板,以实现所需的外观和行为。GraphObject属性与模型数据属性的数据绑定使每个节点或链接对数据唯一。

该节点可以被手动地定位(交互方式或编程),或者可以由自动排列 Diagram.layout以及由每个Group.layout。节点位于其左上角点(GraphObject.position)或节点中的程序员定义点(Part.location和Part.locationSpot)。

工具处理鼠标和键盘事件。每个图都有许多工具可以执行交互式任务,例如选择零件或拖动它们或在两个节点之间绘制新链接。该ToolManager确定哪些工具应该运行,根据鼠标事件和目前的情况。

每个图还有一个CommandHandler,它实现了各种命令,例如Delete或Copy。当ToolManager运行时,CommandHandler解释键盘事件,例如control-Z。

该图提供了滚动图表部分以及放大或缩小的功能。该图还包含所有层,而这些层又包含所有部分(节点和链接)。这些部件又由可能嵌套的文本,形状和图像组成。内存中JavaScript对象的这种层次结构形成了图表可能绘制的所有内容的“可视树”。

在概述类允许用户看到整个模型和控制一下它的一部分,该图显示。的调色板类认为,用户可以拖动和放下到的图的部分。

您可以在图表中选择一个或多个部件。模板实现可以在选择节点或链接时更改其外观。该图还可以添加装饰以指示选择并支持诸如调整节点大小或重新连接链接之类的工具。装饰品也是工具提示和上下文菜单的实现方式。

应该在每个用户操作的单个事务中执行 对Diagram,GraphObject,Model或model数据状态的所有编程更改,以确保正确更新并支持undo / redo。所有预定义的工具和命令都执行事务,因此如果启用了UndoManager,则每个用户操作都可以自动撤消。 图表上的DiagramEvent以及Diagrams和GraphObjects上的事件处理程序都会记录它们是否在事务中引发,或者是否需要执行事务以更改模型或图表。

创建图表

GoJS不依赖于任何JavaScript库或框架,因此您应该能够在任何环境中使用它。但是它确实需要环境支持现代HTML和JavaScript。

加载GoJS

在您可以执行任何JavaScript代码来构建Diagram之前,您需要加载GoJS库。当您包含库时,“ go”JavaScript对象将包含所有GoJS类型。在开发过程中,我们建议您加载“go-debug.js”而不是“go.js”,以获得额外的运行时错误检查和调试功能。

建议您声明您的网页支持现代HTML:

<!DOCTYPE html>  <!-- Declare standards mode. --><html><head>. . .<!-- Include the GoJS library. --><script src="go-debug.js"></script>

如果您使用的是RequireJS,GoJS支持UMD模块定义。有关示例,请参阅Require示例。此外,现在可以使用扩展类的模块化版本../extensionsTS/,其中扩展类已被转换为TypeScript并编译为.js可import编辑的文件。或required。

在ES6(ECMAScript 2015)或TypeScript代码中,只需导入“go.js”库:

import * as go from "./path/to/gojs/release/go";

取决于您的npm环境:

import * as go from "gojs";

在Div元素中托管GoJS

每个图必须由HTML Div元素托管。 GoJS将管理该Div元素的内容,但您可以像对待任何HTML元素一样定位和调整Div的样式。该图将向该图将绘制的Div元素添加Canvas元素 - 这是用户实际看到的内容。Canvas元素的大小自动调整为与Div元素大小相同。

<body>. . .<!-- The DIV for a Diagram needs an explicit size or else we won't see anything.In this case we also add a border to help see the edges. --><div id="myDiagramDiv" style="border: solid 1px blue; width:400px; height:150px"></div>

然后,您可以使用对该Div元素的引用在JavaScript中创建Diagram。通过构造纯JavaScript对象并将其添加到图的模型来构建图。请注意,JavaScript代码中对GoJS类型(如Diagram)的所有引用都以“ go.” 为前缀。

 <!-- Create the Diagram in the DIV element using JavaScript. --><!-- The "go" object is the "namespace" that holds all of the GoJS types. --><script>var diagram = new go.Diagram("myDiagramDiv");diagram.model = new go.GraphLinksModel([{ key: "Hello" },   // two node data, in an Array{ key: "World!" }],[{ from: "Hello", to: "World!"}]  // one link data, in an Array);</script>

购买GoJS正版授权,请点击“咨询在线客服”哟!

转载于:https://juejin.im/post/5cecdee2e51d4510aa011486

GoJS图表组件简介相关推荐

  1. Asp.net报表制作 OpenFlashChart免费图表组件

    Asp.net报表制作 OpenFlashChart免费图表组件 OpenFlashChart是一款开源的以Flash和Javascript为技术基础的免费图表组件,用它能创建一些很有效果的报表分析图 ...

  2. 【ucharts】uniapp -- 使用秋云 ucharts echarts高性能跨全端图表组件

    uCharts简介 uCharts是一款基于canvas API开发的适用于所有前端应用的图表库,开发者编写一套代码,可运行到 Web.iOS.Android(基于 uni-app / taro ). ...

  3. 数据分析可视化04 图表组件:Echarts数据可视化图表基础

    本课时是课程的第二个模块,环境部署篇的第一个课时.在第一部分的基础理论篇,我向你介绍了数据可视化分析的概念定义.方法体系和关键技术.接下来,我会带你了解基于开源框架,如何部署数据可视化分析的开发环境, ...

  4. vue-cli ——解决多次复用含有Echarts图表组件的问题

    vue-cli --解决多次复用含有Echarts图表组件的问题 参考文章: (1)vue-cli --解决多次复用含有Echarts图表组件的问题 (2)https://www.cnblogs.co ...

  5. 【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 )

    文章目录 一.Image 组件简介 二.Image 构造函数 三.Image.network 构造函数 四.Image.file 构造函数 五.Image.asset 构造函数 六.Image.mem ...

  6. 【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )

    文章目录 一.Flutter 布局相关的组件简介 二.Row 和 Column 组件 三.SizedBox 组件 四.ClipOval 组件 五. 完整代码示例 六. 相关资源 一.Flutter 布 ...

  7. JS组件系列——开源免费图表组件:Chart.js

    前言:最近被开源免费得有点上火了,各种组件首先想到的就是是开源否.是否免费.是否和bootstrap风格一致.想着以后做报表肯定要用到图表组件的,于是在Bootstrap中文网上面找到了Chart.j ...

  8. 转:ECharts图表组件之简单关系图:如何轻松实现另类站点地图且扩展节点属性实现点击节点页面跳转...

    站点地图不外乎就是罗列一个网站的层次结构,提炼地讲就是一个关系结构图.那么我们如何巧用ECharts图表组件内的简单关系结构图来实现一个站点的地图结构呢?另外如何点击某个节点的时候实现页面跳转呢? 针 ...

  9. Py之jieba:Python包之jieba包(中文分词最好的组件)简介、安装、使用方法之详细攻略

    Py之jieba:Python包之jieba包(中文分词最好的组件)简介.安装.使用方法之详细攻略 目录 jieba简介 jieba安装 jieba使用方法 1.进行分词 jieba简介 jieba应 ...

  10. 使用Flex图表组件

    使用Flex图表组件 以图表或是图的方式显示数据的能力可以使得Flex程序用户的数据交互更为容易.与仅显示简单的数字数据表不同,我们可以显示条状图,饼图,线图或是其他类型的图表,并且可以使用颜色,标题 ...

最新文章

  1. 使用Dom4j操作XML数据
  2. cpio/rpm2cpio 命令
  3. SQL学习笔记:库和表的创建
  4. Python入门学习之函数
  5. 从需求的角度去理解Linux系列:总线、设备和驱动
  6. leetcode226 反转二叉树
  7. Mysql 无法插入中文,中文乱码解决
  8. nginx 带宽_Nginx的Gzip功能
  9. ubuntu 14.04安装mysql数据库
  10. 做互联网项目一定要做可循环,可积累的事情
  11. 多元函数的极值、微分
  12. 为什么大部分的程序员成不了架构师?为什么?
  13. 如何用Java将DWG和DXF文件转换为PDF?看了这篇就懂了
  14. 架构设计说明书该怎么写?
  15. Matlab 让多图排版更美观
  16. 软件架构师之拥抱变化
  17. 总结低代码海报平台编辑器难点
  18. 使用R进行数据可视化套路之-茎叶图、盒形图
  19. 群晖 android软件,Synology Moments下载-Synology Moments app下载v1.3.2安卓版-西西软件下载...
  20. uni-app如何让图片高度自适应

热门文章

  1. 【优化布局】基于matlab遗传算法求解带出入点的车间布局优化问题【含Matlab源码 011期】
  2. seata 集群_阿里巴巴和蚂蚁金服联手搞事情: Seata 我们走~
  3. pytorch torchvision的版本对应关系 pytorch历史版本
  4. python中不包不包括_Python文件部分(不包括数据)
  5. java biginteger 比较大小,Java BigInteger compareTo()用法及代码示例
  6. 服务器的维护记录在哪查看,教你巧用事件查看器维护服务器安全 -电脑资料
  7. java队列和栈实现原理_Java特性队列和栈的堵塞原理解析
  8. Web Resources on Patten Recognition
  9. Redis设计思路学习与总结
  10. 运用正则表达式在Asp中过滤Html标签代码的四种不同方法