我对 VisJS 还很陌生,正在尝试可视化计算机使用数据。在过去的两个月里,我按照时间顺序收集了我在计算机上每个应用程序上花费的时间的数据。我想创建一个 VisJS 网络,其中每个节点都是在应用程序中花费的时间,节点按应用程序分组,边将每个节点连接到我之前使用的应用程序和我接下来使用的应用程序。
我已经格式化了所有数据,并从中创建了一个网络,但该网络始终显示在一个环中。我希望不同的节点按其组排列 - 所有“Chrome”节点都由其他“Chrome”节点排列,等等。
这是我正在使用的代码:
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes, //about 9,000 nodes
edges: edges //about 9,000 edges
};
var options = {nodes: {
shape: 'dot',
scaling: {
min: 0,
max: 1
}
},layout: {improvedLayout: false}, physics:{enabled: true},edges: {
color:{inherit:true},
width: 0.15,
smooth: {
type: 'continuous'
}
},};
var network = new vis.Network(container, data, options);
Run Code Online (Sandbox Code Playgroud)
非常基本,但实际结果很混乱,因为我有超过 9,000 个单独的节点。实际结果如下所示:
https://i.ibb.co/gm6d1R7/Screen-Shot-2019-04-08-at-11-23-03-AM.png
我希望它看起来更像此处的 VisJS 示例:
https://visjs.github.io/vis-network/examples/network/edgeStyles/smoothWorldCup.html
据我所知,问题是,我使用与此可视化相同的选项 - 它们只是进入并手动放置每个节点的坐标,而我确实无法使用 9,000 个节点来做到这一点。有没有办法自动执行此操作,而无需单独放置每个节点?