### Vite Project Setup with G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/faq/vite-support/index.html Basic installation command for G6 in a Vite project. Ensure you have Node.js and npm/yarn/pnpm installed. ```bash npm install @antv/g6 --save # or yarn add @antv/g6 # or pnpm add @antv/g6 ``` -------------------------------- ### Minimap Plugin Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Demonstrates how to add and configure the Minimap plugin to provide an overview of the graph. ```javascript import G6 from '@antv/g6'; import Minimap from '@antv/g6/lib/plugin/minimap'; const minimap = new Minimap({ // plugin options }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [minimap] }); ``` -------------------------------- ### Basic Custom Behavior Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/states/custom-behavior/index.html A simple example demonstrating the structure of a custom behavior in G6. This can be used as a starting point for more complex interactions. ```javascript class CustomBehavior { constructor(graph) { this.graph = graph; } // Behavior lifecycle methods enable() { console.log('Custom behavior enabled'); // Add event listeners or other setup } disable() { console.log('Custom behavior disabled'); // Remove event listeners or cleanup } // Custom methods for behavior logic doSomething() { console.log('Doing something custom'); } } // Register the behavior // G6.registerBehavior('my-custom-behavior', CustomBehavior); // Example usage (assuming graph is initialized) // const graph = new G6.Graph({...}); // graph.addBehavior('my-custom-behavior'); ``` -------------------------------- ### Basic Force Directed Graph Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/examples/net/forceDirected/index.html Initializes a basic force-directed graph. Ensure G6 is included in your project. ```html Force Directed Graph
``` -------------------------------- ### Basic G6 Initialization with gtag Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/register-layout/index.html This snippet shows the basic setup for G6, including the initialization of Google Analytics (gtag). It's a common starting point for G6 projects that require analytics tracking. ```html G6 Registration Layout Example
``` -------------------------------- ### Data Analysis Plugin Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Shows a basic example of using a data analysis plugin. Specific plugin and options will vary. ```javascript import G6 from '@antv/g6'; // Assuming a hypothetical 'DataAnalysis' plugin // import DataAnalysis from '@antv/g6/lib/plugin/dataAnalysis'; // const dataAnalysis = new DataAnalysis({ // // plugin options // }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [ // dataAnalysis ] }); ``` -------------------------------- ### Initialize G6 with Edge Bundling Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/edgeBundling/index.html Basic setup for G6 to enable edge bundling. Ensure the 'g6-plugin-bundling' is imported and configured. ```html G6 Edge Bundling
``` -------------------------------- ### Basic Custom Animation Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/scatter/customAnimate/index.html This snippet shows the initial setup for custom animations in G6. It includes the necessary GA tracking code. ```html G6 Custom Animation
``` -------------------------------- ### Initialize G6 with Minimap Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/minimap/index.html Basic setup for G6 graph with the minimap plugin enabled. Ensure G6 is imported. ```html G6 Minimap Example
``` -------------------------------- ### Basic Plugin Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/tutorial/plugins/index.html Demonstrates the basic structure for setting up a custom plugin in G6. Ensure G6 is imported before using plugins. ```javascript import G6 from '@antv/g6'; const MyPlugin = function(options) { return { init: function(graph) { console.log('MyPlugin initialized', options); // Plugin initialization logic }, // Other plugin lifecycle methods like 'render', 'update', 'destroy' }; }; const graph = new G6.Graph({ container: 'graph-container', width: 500, height: 500, plugins: [MyPlugin({ /* plugin options */ })] }); ``` -------------------------------- ### Basic Radial Layout Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/net/radialLayout/index.html Demonstrates the basic setup for a radial layout. Ensure G6 is included in your project. ```html G6 Radial Layout
``` -------------------------------- ### Basic KeyShape Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/shape/shape-keyshape/index.html Demonstrates how to define and use a custom KeyShape for nodes in G6. This requires registering the shape before use. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mount', width: 500, height: 500, }); G6.registerNode('keyShape', { draw(cfg, group) { const keyShape = group.addShape('rect', { attrs: { x: -50, y: -25, width: 100, height: 50, fill: '#1890ff', radius: 5, }, }); return keyShape; }, }); graph.data({ nodes: [ { id: 'node1', x: 100, y: 100, label: 'Node 1', type: 'keyShape', }, ], edges: [], }); graph.render(); ``` -------------------------------- ### Basic Scatter Node Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/scatter/node/index.html Initializes G6 with basic scatter node configuration. Ensure the G6 library is included before this script. ```html G6 Scatter Node
``` -------------------------------- ### Initialize G6 with Default Combo Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/combos/default-combo/index.html Basic setup for G6 to enable default combo rendering. Ensure the 'combo' plugin is included. ```javascript const graph = new G6.Graph({ container: 'mount', width: 500, height: 500, layout: { type: 'combo', }, plugins: [ { type: 'combo', }, ], }); ``` -------------------------------- ### Initialize Grid Layout Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/api/graph-layout/grid/index.html Initializes the grid layout with default configurations. This is a basic setup for applying the grid layout. ```javascript const grid = new G6.Layout.Grid(); ``` -------------------------------- ### Initialize G6 with Edge Methods Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/edge-methods/index.html Basic setup for G6 to enable edge method functionalities. Ensure G6 is imported and initialized. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, // Other configurations... }); ``` -------------------------------- ### Basic Tooltip Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/examples/tool/tooltip/index.html Demonstrates the basic setup for a tooltip in a G6 graph. This is useful for displaying simple information on hover. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, tooltip: { type: 'html', format: function (item) { return `

${item.getModel().label}

Type: ${item.getModel().type}

`; }, }, }); const data = { nodes: [ { id: 'node1', label: 'Node 1', type: 'rect', }, { id: 'node2', label: 'Node 2', type: 'circle', }, ], edges: [ { source: 'node1', target: 'node2' }, ], }; graph.data(data); graph.render(); ``` -------------------------------- ### Using the Bundling Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Example of integrating the Bundling plugin for visualizing aggregated edges (bundles) in the graph. Requires specific data structures. ```javascript import G6 from '@antv/g6'; import Bundling from '@antv/g6/lib/plugin/bundling'; const bundling = new Bundling({ // plugin options }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [bundling] }); ``` -------------------------------- ### Basic HTML Structure for G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tree/customLayout/index.html This snippet shows the basic HTML setup required to initialize G6 and include Google Analytics. ```html G6 Custom Layout
``` -------------------------------- ### Initialize G6 with Snapline Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/snapline/index.html This snippet shows the basic setup for initializing a G6 graph with the snapline plugin enabled. Ensure the plugin is correctly imported and registered. ```javascript import { Graph } from '@antv/g6'; import SnapLine from '@antv/g6-plugin/lib/snapLine'; const graph = new Graph({ container: 'mountNode', width: 500, height: 500, plugins: [new SnapLine()], }); ``` -------------------------------- ### Initialize G6 with React Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/advanced/g6-in-react/index.html This snippet shows the basic setup for initializing G6 within a React component. Ensure G6 is imported correctly. ```javascript import G6 from '@antv/g6'; const MyGraphComponent = () => { const graphRef = useRef(null); useEffect(() => { if (!graphRef.current) return; const graph = new G6.Graph({ container: graphRef.current, width: 500, height: 500, }); // Add data and render graph.data({ nodes: [ { id: 'node1', label: 'Node 1' }, { id: 'node2', label: 'Node 2' }, ], edges: [ { source: 'node1', target: 'node2', label: 'Edge 1' }, ], }); graph.render(); return () => { graph.destroy(); }; }, []); return
; }; export default MyGraphComponent; ``` -------------------------------- ### Basic Web Worker Setup Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/middle/layout/webworker/index.html This snippet shows the basic structure for creating a Web Worker. It initializes the worker and sets up a message listener to receive data from the main thread. ```javascript const worker = new Worker('./worker.js'); worker.onmessage = (event) => { console.log('Message from worker:', event.data); }; worker.postMessage({ data: 'some data' }); ``` -------------------------------- ### Configure Edge Bundling Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/edgeBundling/index.html Example of configuring the edge bundling plugin with specific options. This snippet shows how to set up the bundling behavior. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 800, height: 600, layout: { type: 'force', preventOverlap: true, nodeStrength: 1, edgeStrength: 0.1, }, modes: { default: ['drag-node', 'zoom-canvas', 'drag-canvas'], }, plugins: [ new G6PluginBundling({ bundle: true, // Enable bundling // Other options can be configured here, e.g., bundleStyle, maxEpic }), ], }); // Sample data const data = { nodes: [ { id: 'node1', label: 'Node 1' }, { id: 'node2', label: 'Node 2' }, { id: 'node3', label: 'Node 3' }, { id: 'node4', label: 'Node 4' }, { id: 'node5', label: 'Node 5' }, ], edges: [ { source: 'node1', target: 'node2' }, { source: 'node1', target: 'node3' }, { source: 'node2', target: 'node3' }, { source: 'node3', target: 'node4' }, { source: 'node4', target: 'node5' }, { source: 'node1', target: 'node4' }, // Additional edge to demonstrate bundling ], }; graph.data(data); graph.render(); ``` -------------------------------- ### G6 Plugin: Minimap Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Integrates the Minimap plugin to provide an overview of the graph. Ensure the plugin is imported and added to the graph configuration. ```javascript import G6 from '@antv/g6'; import Minimap from '@antv/g6-plugin/lib/minimap'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [new Minimap()] }); ``` -------------------------------- ### Configure Snapline Options Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/snapline/index.html Customize the snapline behavior by passing configuration options during plugin initialization. This example sets the proximity and edge properties. ```javascript import { Graph } from '@antv/g6'; import SnapLine from '@antv/g6-plugin/lib/snapLine'; const graph = new Graph({ container: 'mountNode', width: 500, height: 500, plugins: [ new SnapLine({ proximity: 10, edge: { style: { stroke: 'blue', lineWidth: 2, }, }, }), ], }); ``` -------------------------------- ### Initialize G6 with State Definitions Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/scatter/stateChange/index.html Defines the initial states for nodes and edges, such as 'default', 'hover', and 'selected'. This setup is crucial for visual feedback on user interactions. ```javascript const graph = new G6.Graph({ container: 'mount', width: 500, height: 500, defaultNode: { size: 20, // Define default node styles style: { fill: '#40a9ff', stroke: '#096dd9', }, // Define states for nodes stateStyles: { hover: { fill: '#e6fffb', stroke: '#59cbff', }, selected: { fill: '#f6ffed', stroke: '#b7eb8f', }, }, }, defaultEdge: { // Define default edge styles style: { stroke: '#878787', }, // Define states for edges stateStyles: { hover: { stroke: '#1890ff', }, selected: { stroke: '#52c41a', }, }, }, }); ``` -------------------------------- ### Define Combo Styles Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/combos/default-combo/index.html Customize the appearance of default combos using style configurations. This example sets the fill color and stroke. ```javascript const graph = new G6.Graph({ container: 'mount', width: 500, height: 500, layout: { type: 'combo', }, plugins: [ { type: 'combo', comboStyle: { fill: '#f00', stroke: '#0f0', }, }, ], }); ``` -------------------------------- ### Basic Shape Transformation Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/shape/transform/index.html Demonstrates applying a basic transformation to a shape. This is useful for manipulating the visual representation of graph elements. ```javascript const shape = new G6.Shape('rect', { attrs: { x: 100, y: 100, width: 50, height: 50, fill: 'blue', stroke: 'black' } }); // Apply a transformation (e.g., scale) shape.transform({ scaleX: 2, scaleY: 1.5, // Other transform properties like rotate, translate can also be used }); // Add the shape to a graph or canvas (assuming 'graph' is an instance of G6.Graph) graph.add(shape); ``` -------------------------------- ### Grid Layout with Custom Begin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/api/graph-layout/grid/index.html Applies a grid layout starting from a custom position. Use 'begin' to offset the grid's origin. ```javascript const grid = new G6.Layout.Grid({ begin: [50, 50], }); ``` -------------------------------- ### Initialize G6 and Set Up Drag Behavior Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/examples/interaction/dragCanvasHideItem/index.html Initializes a G6 graph and configures it to allow dragging the canvas. This setup is essential for interactive graph manipulation. ```javascript const graph = new G6.Graph({ container: 'mount', width: 500, height: 500, modes: { default: ['drag-canvas', 'zoom-canvas'], }, }); graph.read({ nodes: [ { id: 'node1', label: 'Node 1', x: 50, y: 50, }, { id: 'node2', label: 'Node 2', x: 150, y: 50, }, { id: 'node3', label: 'Node 3', x: 100, y: 100, }, ], edges: [ { source: 'node1', target: 'node2', }, { source: 'node2', target: 'node3', }, { source: 'node3', target: 'node1', }, ], }); ``` -------------------------------- ### Basic G6 Integration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/getting-started/index.html Include G6 in your HTML file using a script tag. This is a common way to start using G6 in web projects. ```html ``` -------------------------------- ### G6 Layout: ForceDirected Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Applies the ForceDirected layout algorithm to arrange nodes in the graph. This layout is suitable for visualizing network structures. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, layout: { type: 'forceDirected', }, }); ``` -------------------------------- ### Importing G6 in Vite Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/faq/vite-support/index.html Demonstrates how to import G6 and its components in your Vite project's JavaScript or TypeScript files. This is the standard way to start using G6. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, }); ``` -------------------------------- ### Custom Node Click Behavior Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/examples/interaction/customBehavior/index.html Shows how to define a custom behavior when a node is clicked. This example logs the node's ID to the console upon clicking. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, defaultNode: { size: 30, }, modes: { default: [ { type: 'click-select', trigger: 'click', // custom click behavior shouldBegin: (e) => { console.log('Node clicked:', e.item.get('id')); return true; }, }, ], }, }); graph.data(data); graph.render(); ``` -------------------------------- ### Basic Scatter Plot with Viewport Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/scatter/viewport/index.html Demonstrates a fundamental scatter plot setup with basic viewport controls. Useful for initial visualization of point data. ```html G6 Scatter Viewport
``` -------------------------------- ### G6 Plugin: Tooltip Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Attaches a tooltip to nodes or edges to display additional information on hover. Define the tooltip content format. ```javascript import G6 from '@antv/g6'; import Tooltip from '@antv/g6-plugin/lib/tooltip'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [new Tooltip({ getContent(e) { const out = `

${e.item.getModel().label}

`; return out; }, offset: 10, })] }); ``` -------------------------------- ### Basic Circle Node Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/nodes/built-in/circle/index.html Example of defining a basic circle node with default properties. This is useful for simple graph representations where custom styling is not a primary concern. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, defaultNode: { type: 'circle', style: { fill: '#40a9ff', stroke: '#096dd9', }, labelCfg: { style: { fill: '#fff', }, }, }, }); const data = { nodes: [ { id: 'node1', label: 'Circle Node 1', }, { id: 'node2', label: 'Circle Node 2', }, ], edges: [], }; graph.data(data); graph.render(); ``` -------------------------------- ### G6 Behavior: Activate Relations Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Highlights connected nodes and edges when a node is hovered over. This helps in understanding relationships within the graph. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, modes: { default: ['activate-relations'], }, }); ``` -------------------------------- ### Getting Connected Edges of a Node in G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-methods/index.html Illustrates how to get all edges connected to a specific node. Useful for analyzing node connectivity. ```javascript const edges = graph.getAssociatedEdges('node1'); ``` -------------------------------- ### Getting All Node Data Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-properties/index.html Retrieves all data associated with all nodes in the graph. ```javascript const allNodesData = graph.getAllNodeData(); console.log(allNodesData); ``` -------------------------------- ### Get All Edges from the Graph Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/edge-methods/index.html Fetches all edges currently present in the graph. Returns an array of edge objects. ```javascript const allEdges = graph.getEdges(); console.log(allEdges); ``` -------------------------------- ### Getting All Nodes in G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-methods/index.html Demonstrates how to retrieve all node items currently present in the graph. Useful for iterating over all nodes. ```javascript const nodes = graph.getNodes(); ``` -------------------------------- ### G6 API: Get Graph Instance Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Retrieves the G6 graph instance. This is useful for performing operations on the graph after it has been initialized. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, }); const graphInstance = G6.Util.getGraphInstance(graph); console.log(graphInstance === graph); // true ``` -------------------------------- ### Getting Node Data in G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-methods/index.html Shows how to access the data associated with a specific node. This method returns the model of the node. ```javascript const nodeData = graph.getNodeData('node1'); ``` -------------------------------- ### Configuring the ContextMenu Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Demonstrates the configuration options for the ContextMenu plugin, allowing customization of its behavior and appearance. ```javascript import G6 from '@antv/g6'; import ContextMenu from '@antv/g6/lib/plugin/contextmenu'; const contextMenu = new ContextMenu({ className: 'my-menu', itemTypes: ['node', 'edge'], }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [contextMenu] }); ``` -------------------------------- ### G6 Behavior: Zoom Canvas Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Allows the user to zoom in and out of the canvas. This behavior is essential for navigating large graphs. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, modes: { default: ['zoom-canvas'], }, }); ``` -------------------------------- ### Updating Element Data Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/elements/methods/update-element/index.html Provides an example of updating the data associated with an element. Changes to data can trigger re-rendering or other updates. ```javascript graph.updateElement(element, { data: { label: 'New Label' } }); ``` -------------------------------- ### Adding a Plugin Instance Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Shows how to instantiate and add a specific plugin, like the 'Grid' plugin, to your G6 graph configuration. ```javascript import G6 from '@antv/g6'; import Grid from '@antv/g6/lib/plugin/grid'; const grid = new Grid(); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [grid] }); ``` -------------------------------- ### Getting Neighbor Nodes in G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-methods/index.html Shows how to retrieve all nodes directly connected to a given node. This is useful for graph traversal algorithms. ```javascript const neighbors = graph.getNeighbors('node1'); ``` -------------------------------- ### Get an Edge by ID Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/edge-methods/index.html Retrieves a specific edge object from the graph using its unique identifier. Returns null if the edge is not found. ```javascript const edge = graph.getEdge('edge3'); console.log(edge); ``` -------------------------------- ### G6 Behavior: Drag Node Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Enables nodes to be dragged within the graph canvas. This is a fundamental behavior for user interaction. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, modes: { default: ['drag-node'], }, }); ``` -------------------------------- ### Custom Edge Hover Behavior Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/examples/interaction/customBehavior/index.html Illustrates how to implement a custom behavior when the mouse hovers over an edge. This example highlights the edge on hover. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, defaultNode: { size: 30, }, modes: { default: [ 'drag-node', 'click-select', { type: 'tooltip', // custom hover behavior shouldBegin: (e) => { console.log('Edge hovered:', e.item.get('id')); return true; }, }, ], }, }); graph.data(data); graph.render(); ``` -------------------------------- ### Using the Collapse/Expand Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Illustrates how to use the Collapse/Expand plugin to manage hierarchical graph structures by collapsing and expanding nodes. ```javascript import G6 from '@antv/g6'; import CollapsePanel from '@antv/g6/lib/plugin/collapsePanel'; const collapsePanel = new CollapsePanel({ // plugin options }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [collapsePanel] }); ``` -------------------------------- ### Configuring Grid Plugin Appearance Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/tutorial/plugins/index.html Illustrates how to customize the appearance of the Grid plugin, such as line color and spacing. Pass configuration options when creating the Grid instance. ```javascript import G6 from '@antv/g6'; import Grid from '@antv/g6/lib/plugin/grid'; const grid = new Grid({ type: 'dot', size: 20, color: '#e0e0e0', lineDash: [1, 1] }); const graph = new G6.Graph({ container: 'graph-container', width: 500, height: 500, plugins: [grid] }); ``` -------------------------------- ### Basic Force-Directed Layout Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/graph-func/layout/index.html Configures a basic force-directed layout for graph visualization. Ensure G6 is imported before use. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, layout: { type: 'force', }, }); ``` -------------------------------- ### Basic Sub-Layout Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/middle/layout/sub-layout/index.html Demonstrates the basic configuration for using a sub-layout within a G6 graph. Ensure G6 is imported and initialized before using this. ```javascript const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, layout: { type: 'dagre', subLayout: { type: 'compactBox', // Other sub-layout configurations }, }, }); ``` -------------------------------- ### Tooltip Plugin Configuration Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Shows how to set up and configure the Tooltip plugin to display information when hovering over graph elements. ```javascript import G6 from '@antv/g6'; import Tooltip from '@antv/g6/lib/plugin/tooltip'; const tooltip = new Tooltip({ // plugin options }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [tooltip] }); ``` -------------------------------- ### Getting Node State in G6 Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/items/node-methods/index.html Shows how to retrieve the current state of a node, such as whether it is selected or active. This is useful for conditional styling or behavior. ```javascript const state = graph.getNodeState('node1', 'selected'); ``` -------------------------------- ### Using the Menu Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Illustrates how to integrate the Menu plugin for context-sensitive menus within the graph. Requires the Menu plugin to be imported. ```javascript import G6 from '@antv/g6'; import Menu from '@antv/g6/lib/plugin/menu'; const menu = new Menu({ // plugin options }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: [menu] }); ``` -------------------------------- ### Using Built-in PathHighlight Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/tutorial/plugins/index.html Shows how to use the PathHighlight plugin to highlight a path in the graph. This is useful for visualizing specific routes or connections. ```javascript import G6 from '@antv/g6'; import PathHighlight from '@antv/g6/lib/plugin/path-highlight'; const pathHighlight = new PathHighlight({ வுகளில்: true, வுகளில்Style: { type: 'circle', radius: 5, fill: 'red' } }); const graph = new G6.Graph({ container: 'graph-container', width: 500, height: 500, plugins: [pathHighlight] }); // To highlight a path: graph.highlightPath(pathEdges); // To clear highlight: graph.clearHighlightPath(); ``` -------------------------------- ### G6 Data Transformation: Remove Node Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Removes a node and its associated edges from the graph. This operation is common when managing graph data. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, }); graph.removeNode('node1'); ``` -------------------------------- ### Registering a Custom Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/middle/plugins/plugins/index.html Demonstrates the process of registering a custom plugin with G6, allowing for unique functionalities. ```javascript import G6 from '@antv/g6'; G6.registerPlugin('myCustomPlugin', class MyCustomPlugin extends G6.Plugin { constructor(cfg) { super(cfg); } // plugin methods }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, plugins: ['myCustomPlugin'] }); ``` -------------------------------- ### G6 Custom Node: Circle Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Defines a custom node shape as a circle. This allows for more flexible and visually distinct node representations. ```javascript import G6 from '@antv/g6'; G6.registerNode('circle-node', { draw(cfg, group) { const r = Math.sqrt(cfg.size[0] * cfg.size[0] + cfg.size[1] * cfg.size[1]) / 2; const shape = group.addShape('circle', { attrs: { x: 0, y: 0, r, fill: cfg.color, stroke: cfg.color, }, }); return shape; }, }); const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, defaultNode: { type: 'circle-node', }, }); ``` -------------------------------- ### Initialize Toolbar Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/examples/tool/toolbar/index.html Basic initialization of the G6 toolbar. Ensure the toolbar element exists in your HTML. ```javascript const toolbar = new G6.ToolBar({ el: 'toolbar-container' }); ``` -------------------------------- ### Using Built-in Menu Plugin Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/en/manual/tutorial/plugins/index.html Demonstrates how to integrate the built-in Menu plugin to provide context-sensitive menus for graph elements. The menu items are defined in the plugin's options. ```javascript import G6 from '@antv/g6'; import Menu from '@antv/g6/lib/plugin/menu'; const menu = new Menu({ getContent: function getContent(item) { const model = item.getModel(); return ` `; }, handle: { 'handle-delete': function(e) { const node = e.item; graph.removeItem(node); }, 'handle-edit': function(e) { console.log('Edit node:', e.item.getModel()); } } }); const graph = new G6.Graph({ container: 'graph-container', width: 500, height: 500, plugins: [menu] }); ``` -------------------------------- ### G6 Layout: Tree Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Applies the Tree layout for hierarchical data. This layout is ideal for organizational charts or file system structures. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, layout: { type: 'tree', direction: 'LR', // Left to Right indent: 20, style: { node: { stroke: '#91d5ff', fill: '#c6eaff', }, edge: { stroke: '#91d5ff', }, }, }, }); ``` -------------------------------- ### G6 Layout: Circular Example Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/manual/getting-started/index.html Uses the Circular layout to arrange nodes in a circle. This layout is often used for hierarchical or ring-like structures. ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'mountNode', width: 500, height: 500, layout: { type: 'circle', radius: 150, }, }); ``` -------------------------------- ### AntV G6 Initialization with GA Tracking Source: https://github.com/antvis/g6-4.x-site/blob/gh-pages/api/graph-func/layout/index.html Initializes the AntV G6 library and sets up Google Analytics tracking. This snippet is typically found in the main HTML file for site-wide analytics. ```javascript window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gt tag('config', 'G-YLQBGDK1GT'); ```