vis-network中文文档 - 从外部导入数据

959 阅读2分钟

原文

vis-network内置了从Gephi或DOT语言导入数据的一系列实用工具

从Gephi导入数据

Network可以直接从gephi导出的json文件中导入数据。您可以在这里获得[JSON导出器](gephi.org/plugins//pl… exporter-plugin)

示例J将演示如何将JSON文件放入到VIS中:

// 加载包含 Gephi关系数据的 JSON 文件。
var gephiJSON = loadJSON("./datasources/WorldCup2014.json");

// 你可以使用这些选项来自定义处理数据的方式。
//默认选项
var parserOptions = {
  edges: {
    inheritColors: false
  },
  nodes: {
    fixed: true,
    parseColor: false
  }
}

// 解析gephi文件并返回数据对象
// 包含满足vis要求的nodes与edges数据
var parsed = vis.parseGephiNetwork(gephiJSON, parserOptions);

// 按照vis-network格式放入数据
var data = {
  nodes: parsed.nodes,
  edged: parsed.edges
};

// 创建关系图
var network = new vis.Network(container, data);

Gephi解析器配置项

以下选项可以用来告诉VIS如何处理Gephi的数据。

名称类型默认描述
nodes.fixedBooleantrue如果为false,则在导入后节点将根据物理模型移动。如果为真,则节点将不会移动。如果设置为true,则必须定义节点位置,以避免在物理模拟过程中出现‘无穷迭代’。
nodes.parseColorBooleanfalse如果为true,颜色将由VIS解析器解析,为``borderhighlightshover`设置额外的颜色。如果为false,该节点将会是为其提供的颜色。
edges.inheritColorBooleanfalse如果为true,则忽略gephi提供的颜色,并将继承颜色模式与全局配置项一起使用。

以DOT语言导入数据

Network支持DOT语言的数据。你可以使用vis.parseDOTNetwork转换器将DOT语言转换为Network兼容的节点、边和选项对象。当然你也可以修改或扩展返回的节点、边和选项。

示例:

// 用DOT语言提供数据
var DOTstring = 'dinetwork {1 -> 1 -> 2; 2 -> 3; 2 -- 4; 2 -> 1 }';
var parsedData = vis.parseDOTNetwork(DOTstring);

var data = {
  nodes: parsedData.nodes,
  edges: parsedData.edges
}

var options = parsedData.options;

// 你可以像普通 JSON 变量一样扩展选项:
options.nodes = {
  color: 'red'
}

// 创建关系图
var network = new vis.Network(container, data, options);