Vis.js 是一个动态的、基于浏览器的可视化库,可处理大量的动态数据并能与这些数据进行
交互操作。该项目是由Almende B.V公司开发的,包含 DataSet、Timeline和Graph组件。
Vis.js组件介绍:
数据集(DataSet):灵活的键/值。可添加、更新和删除项目。DataSet可以过滤和订制项目,转换项目领域。
数据视图(DataView):在DataSet过滤和/或格式化视图。
图表(Graph):显示图形或网络。
时间轴(Timeline):显示不同类型的时间轴上的数据。在时间轴上的时间和项可以交互移动、缩放及控制。
官方主页: http://visjs.org/ 项目文档: http://visjs.org/docs/index.html
创建一个简单的网络拓扑图
<!doctype html>
<html>
<head>
<title>Network | Basic usage</title>
<script type="text/javascript" src="../../dist/vis.js"></script>
<link href="../../dist/vis-network.min.css" rel="stylesheet" type="text/css" />
<style type="text/css">
#mynetwork {
width: 600px;
height: 400px;
border: 1px solid lightgray;
}
</style>
</head>
<body>
<p>
Create a simple network with some nodes and edges.
</p>
<div id="mynetwork"></div>
<script type="text/javascript">
// create an array with nodes
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1'},
{id: 2, label: 'Node 2'},
{id: 3, label: 'Node 3'},
{id: 4, label: 'Node 4'},
{id: 5, label: 'Node 5'}
]);
// create an array with edges
var edges = new vis.DataSet([
{from: 1, to: 3},
{from: 1, to: 2},
{from: 2, to: 4},
{from: 2, to: 5},
{from: 3, to: 3}
]);
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {};
var network = new vis.Network(container, data, options);
</script>
</body>
</html>
官方源码效果:http://visjs.org/examples/network/basicUsage.html
完成一个最简单的网络图,需要两个资源文件
- vis.js
- vis-network.min.css
demo下载地址:https://github.com/nilzxq/visjs.git
如上图所示,数据包括:nodes(节点)、edges(关系) 初始化网络图方法:
var network = new vis.Network(container, data, options);
其中,container为容器,data为数据,options为选项
而最终展示的图片实际上是在html5的画布上的。
模块配置
enabled:boolean型参数,默认为true。用于切换配置界面的开关。
filter:类型可以为String、array、boolean、function。如果为boolean型,那么所有选项会
被显示,否则一个都不会显示。如果是一个String类型,那么可选项为nodes, edges,
layout, interaction, manipulation, physics, selection,
renderer。如果是一个数组,那么前面提到的字段可多选。如果是个方法,且返回true,那么
选项就会被展示。
container:容器
showButton:boolean型,是否显示按钮.
将options替换如下
var options = {
configure: {
enabled: true,
filter: 'physics',
container: undefined,
showButton: true
}
}
页面中会多出如下的配置:
参考博客:http://m.blog.csdn.net/html666/article/details/74370334
侵删