簡體   English   中英

vis.js圖表​​即使在數小時后也沒有穩定

[英]vis.js graph not stabilizing even after hours

我有一個大約1000個節點的網絡。 我已設置stabilize:truezoomExtentOnStabilize: true 使用vis.network.gephiParser.parseGephi()函數從JSON添加節點。 當我試圖繪制這張圖時,即使在讓它閑置數小時后它也永遠不會穩定下來。 但是,較少數量的節點在合理的時間內穩定下來。 我在這里想念的是什么 有沒有辦法穩定大圖。 我甚至嘗試將迭代次數設置為穩定到1000甚至更高。 在此先感謝您的幫助。

PS:JSON沒有節點的坐標。 根據用戶輸入重新繪制圖形。

編輯1:繪制的JSON數據可在http://pastebin.com/raw.php?i=Mzy4ncxw獲得 由於CORS錯誤,我無法在jsbin上創建可重現的示例。
JavaScript代碼是:

message = JSON.parse(json_data); // json_data is sent from R server.
var nodes = new vis.DataSet();
var edges = new vis.DataSet();
var container = document.getElementById("div_graph");
var data = {
  nodes: nodes,
  edges: edges
};
var options = {
  tooltip: {
    delay: 50,
    fontColor: "black",
    fontSize: 14, 
    fontFace: "verdana",
    color: {
      border: "#666",
      background: "#FFFFC6"
      } 
  },
  clustering: {
    enabled: clusteringOn,
    clusterEdgeThreshold: 50  
  },
  hideEdgesOnDrag: true,
  stabilize: true,
  zoomExtentOnStabilize: true,
  navigation: true,
  keyboard: true,
  edges: {
    inheritColor: "to"
  }
};
var network = new vis.Network(container, data, options);
nodes.clear();
edges.clear();
var parsed = vis.network.gephiParser.parseGephi(message);
nodes.add(parsed.nodes);
edges.add(parsed.edges);
network.redraw();

我是visjs網絡模塊的開發人員。 我們用它來穩定比1000個節點更大的集合。 根據您提供的信息,我無法真正說出這里出了什么問題。 我想邀請您在我們的github頁面上提出問題。 我們試圖收集那里的所有問題。 您可以共享您使用的代碼或您的數據(標簽為了匿名性而擾亂)。

如果我猜測,1000節點系統將穩定大約3000次迭代。 如果使用動態平滑曲線,則在添加支撐節點以定位曲線時,這會大大增加。 我已經為3000個節點和25000個邊緣系統使用了15000次迭代,即使這樣它也沒有完成但是我在那個時候停止了模擬。

當您說重新繪制用戶輸入時,是否在您看到拖動或縮放的意義上重新加載或重繪數據(類似於重繪功能)?

〜亞歷克斯

編輯:

根據您的數據,我遇到了一些問題。

首先,您似乎不允許節點移動但也不提供其位置,從而導致四叉樹構建過程中的無限遞歸。 我將在未來使gephiParser更加健壯。 請參閱此處了解gephi解析器的設置: http ://visjs.org/docs/network.html#Gephi_import

其次,您使用動態平滑曲線和許多互連節點。 每條平滑曲線都有一個不可見的支撐節點,有助於定位。 這會使您的系統不穩定(看看它的穩定性以查看行為)。 在v4版本中,您可以設置自己的時間步以糾正此問題,但也可以更改物理設置。 嘗試configurePhysics選項,看看是否有幫助。 您仍然可以使用靜態平滑曲線來達到美學目的。

總結一下,我可以讓你的系統在大約3000次迭代中使用靜態平滑曲線穩定,大約需要一分鍾。 我在您的選項中禁用了群集。 我建議你等待4.0版本使用群集,因為它會更加強大。

編輯2:

這是一個JSBin,顯示您的代碼和數據的工作穩定性(雖然已修改)

http://jsbin.com/tiwijixoha/5/edit?html,output

因此,如果你認為它沒有穩定,它不會隱藏自己,只顯示它准備好而不是永遠不會達到穩定狀態,那么問題是穩定只能通過setData()完成,而不是數據集更新。

在這個jsbin中,我也改變了你的邊緣並改變了物理學以使其穩定。 如果你對它不滿意,你可以多玩一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM