想要更好的閱讀體驗,請點擊這裏。html
是否是被如何優雅地展現多平行邊折磨得焦頭爛額?是否是看到別人家的包裹效果眼饞不已?是否是以爲自定義節點特別難上手?node
魚與熊掌不可兼得?不存在的,AntV G6 能夠在功能豐富、性能強大的基礎上還可以很好用、很易用。git
多節點的輪廓包裹
在複雜的網絡應用中,有時須要分析團伙、社區的分佈。使用 G6 提供的 Bubble Set 功能,能夠進行節點集的快速標記。有時,同一團伙或社區的節點,可能在佈局的做用下,分佈在屏幕上不一樣區域。Bubble Set 也能夠自動「繞過」其餘節點,精準標記。github
是否是已經按奈不住你好奇的心只想一探究竟,戳這兒看 demo。 算法
怎麼才能完全搞清楚包裹效果和 Combo 的區別,答案就在下表:網絡
Combo | Bubble Set | |
---|---|---|
含義與使用目的 | 數據中的分組信息展現與分析 | 交互過程當中的標記與分析 |
影響佈局 | ✅<br>可影響 comboForce 與 dagre |
❌<br>僅在圖繪製完成後,增長一個「凹包」形狀的區域顏色 |
形狀 | 內置有圓形、正方形 | 平滑的凹包多邊形 |
編輯節點從屬關係 | ✅ | ✅ |
根據節點分佈改變形狀 | ❌ | ✅ |
可自定義形狀 | ✅ | ❌ |
多層次嵌套 | ✅ | ❌ |
節點定義的新選擇
做爲圖重要組成部分之一,節點一直是 G6 中的一等公民。從 G6 1.0 到 G6 3.x,自定義節點均須要基於 Canvas 的語法進行定義,這須要用戶具備必定的 Canvas 技術基礎。因此,G6 3.7.0 爲你們帶來了類 JSX 的語法定義節點的機制。用戶能夠經過使用相似於寫 HTML 標籤的方式自定義節點,只要會寫 HTML 就可以自定義節點。佈局
基礎語法性能
<[group|shape] [key]="value" style={{ [key]: value }}> <[more tag] /> ... <text>value</text> <!--[group|shape]-->
實現上圖節點的效果,使用下面的幾行代碼就能夠輕鬆搞定。更完善的案例請戳這兒。優化
不同凡響的節點類型
相比於其餘圖可視化類庫,G6 的節點很是豐富。除圓形、矩形等基礎內置節點外,G6 還支持自定義節點。爲了更好地服務用戶,G6 決定支持 G2 的全部統計圖表, G6 的用戶今後能夠把節點定義得不同凡響。ui
更多關於節點中使用統計圖表的內容,請參考戳這兒。
更多關於節點中使用統計圖表的 Demo,請戳這兒。
優雅的 Edge 們
兩點間多邊的優雅展現
若是你被兩點間多邊的展現所困擾,請嘗試 G6.Util.``processParallelEdges
,一鍵生成優雅的平行邊控制點!不知道說什麼好了,送本身一朵 G6 小紅花吧。戳這兒看 demo。
節點連線交互
支持經過點擊兩個端點、從一個端點拖拽到另外一個端點兩種交互方式,也支持配合鍵盤輔助鍵觸發該交互。戳這兒看 demo。
持續加強的圖算法
發現圖中全部環
在複雜網絡中,存在環路可能表明有潛在的風險。G6 提供的計算圖中全部環算法,能夠快速發現和展現環。爲終端用戶及時發現風險止損提供便捷。<br> <a name="RdACN"></a>
得到任意兩節點間的路徑
在一個複雜的網絡中,任意兩個節點之間可能會存在多條路徑,包括阻斷路徑。G6 提供的尋徑算法,方便用戶發現和展現兩節點間的全部路徑或最短路徑。
最小生成樹
一個連通圖的生成樹包含有圖中所有的 n 個頂點,和能夠構成一顆樹的 n-1 條邊。若邊具備權重值,連通全部節點的最小代價的生成樹即最小生成樹。最小生成樹能夠應用在旅行路徑規劃、交通建設路徑規劃等場景中,找到連通全部站點(節點)、總成本最低的路徑。
渲染性能進化 ing
在底層渲染引擎的升級加持下,G6 V3.7.0 有如下幾點進步:
- 自動裁剪視口外部圖形,提高全局渲染性能;
- 正常模式下圖元拾取(例如 hover 某個節點並高亮、點選某個節點等)效率提高 2~3 倍;
- 支持 quickHit 模式,該模式下,文本不參與拾取。大規模圖上使用該模式,拾取效率提高更加飛躍。
N(節點數),E(邊數),T(文本數) | 交互 | 最高幀率(FPS) | |
---|---|---|---|
G6 V3.6 | G6 V3.7 | ||
N = 7167<br>E = 5421<br>T = 7167<br>總計 19755 個圖形 | hover 高亮 | 13 | 正常模式:34<br>quickHit 模式(文本不參與拾取):39 |
拖拽畫布 | 1.7 | 3 | |
N = 55000<br>E = 4933<br>T = 0<br>總計 59933 個圖形 | hover 高亮 | 3.2 | 正常模式:7<br>quickHit(文本不參與拾取):25 |
拖拽畫布 | 0.9 | 1.8 |
結語
在 G6 3.7.0 版本中,咱們從節點、邊、圖算法及性能方面作了功能加強及優化。咱們提供了使用相似 JSX 的語法來定義節點;支持在節點中使用統計圖表;還能夠在交互中對多節點進行包裹;另外,咱們對邊也作了必定的優化,確保咱們的用戶不在受多邊生成及展現的困擾;在圖算法和性能方面,咱們也在不斷的豐富和優化。在圖可視化與圖分析的道路上,G6 一直在默默努力中,咱們很是須要你的支持和反饋,也感謝你的關注。
> AntV G6 是一款開源的圖可視化引擎,專一於圖可視化及圖分析領域。 > 歡迎關注和 star 咱們的 GitHub:https://github.com/antvis/G6 > 官網:https://g6.antv.vision/zh/