我已經使用dagre繪製有向圖,但我想了解svg,d3,dagre和graphlib如何相互依賴?基本上,一個停止,另一個開始。svg,d3,dagre,dagre-d3和graphlib如何相互依賴?
我會試着指出我可以用我有限的理解收集的東西。
SVG:(是一種基於XML的矢量圖像格式,但基本上)是使用其中可以繪製圓形,橢圓形,長方形等,並然後使用克元件於兩個基團或一個HTML標記更多的形狀和應用轉換等。
d3:d3是一個JavaScript庫,它基本上可以讓您將數據與svg結合起來。所以,不是每次都寫svg標籤,而是基本上使用編程,循環,數據等來創建svg代碼。
現在來dagre,dagre-D3和graphlib在這裏我有一個問題假設不管我上面說讓任何意義:)
dagre,dagre-D3:這是什麼dagre頁面上顯示「dagre是一個JavaScript庫,可以很容易地鋪陳在客戶端向圖。該dagre-D3庫作用的前端dagre,使用D3提供了實際的渲染。」
有人可以向我解釋這個嗎?那麼我可以在dagre,dagre-d3中使用d3函數嗎?嗯......我已經很困惑了,你能用一個例子來解釋一下這些並存的情況嗎? 這code snippet是什麼讓我思考:
var oldDrawNodes = renderer.drawNodes(); renderer.drawNodes(function(graph, root) { var svgNodes = oldDrawNodes(graph, root); svgNodes.each(function(u) { d3.select(this).classed(graph.node(u).nodeclass, true); }); return svgNodes; });
這裏,drawNodes是dagre-D3卻是被過度纏身,我們傳遞一個D3功能(d3.select的功能(這).classed它在裏面())。嗯......這是怎麼回事?我認爲d3.select只能對html元素完成?這是什麼?
graphlib:這是graphlib頁面,它說它提供了多圖的數據結構。但我的意思是,這些庫是爲d3還是爲dagre-d3構建的?
我知道我聽起來很困惑,但你明白了!如果有人可以向我解釋這些關係是如何相關的,並且可以在內部使用哪些功能,我就可以拿起。
謝謝。