Learn R Programming

g6R

{g6R} provides R bindings to the G6 graph library. It allows to create interactive network in R, with stunning set of features, including:

  • Support for various layouts, such as force-directed, radial, circular, and hierarchical layouts.
  • Interactive behaviors like zooming, dragging, and selecting elements.
  • Plugins for additional functionality, such as minimaps and tooltips, context menus, and node grouping features like bubble sets, hulls and legends.
  • Various data sources including data frames, lists and remote JSON urls.
  • Support for combos allowing for nested nodes.
  • High performance rendering (>20000 nodes).

Installation

You can install the development version of {g6R} from GitHub with:

# install.packages("pak")
pak::pak("cynkra/g6R")

Example

To create a {g6R} graph:

library(g6R)
nodes <- data.frame(
  id = 1:10,
  label = 1:10
)

# Generate random edges
edges <- data.frame(
  source = c(2, 6, 7),
  target = c(1, 3, 9)
)

g6(nodes, edges) |>
  g6_options(
    node = list(
      style = list(
        labelBackground = TRUE,
        labelBackgroundFill = '#FFB6C1',
        labelBackgroundRadius = 4,
        labelFontFamily = 'Arial',
        labelPadding = c(0, 4),
        labelText = JS(
          "(d) => {
              return d.id
            }"
        )
      )
    )
  ) |>
  g6_layout(d3_force_layout()) |>
  g6_behaviors(
    "zoom-canvas",
    drag_element_force(fixed = TRUE),
    click_select(
      multiple = TRUE,
      onClick = JS(
        "(e) => {
            console.log(e);
          }"
      )
    ),
    brush_select(),
    create_edge()
  ) |>
  g6_plugins(
    "minimap",
    "tooltip",
    context_menu()
  )

Copy Link

Version

Install

install.packages('g6R')

Version

0.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

David Granjon

Last Published

July 10th, 2025

Functions in g6R (0.1.0)

combo_combined_layout

Create an AntV Combo Combined Layout
create_edge

Configure Create Edge Behavior
combo_options

Create Combo Options Configuration for G6 Graphs
dag

Example DAG graph
d3_force_layout

Generate G6 D3 Force layout configuration
context_menu

Configure Context Menu Behavior
compact_box_layout

Generate G6 AntV Compact Box layout configuration
click_select

Configure Click Select Behavior
collapse_expand

Configure Collapse Expand Behavior
edge_style_options

Create Edge Style Options for G6 Graphs
fish_eye

Configure Fish Eye Plugin
edge_bundling

Configure Edge Bundling Plugin
drag_element_force

Configure Drag Element Force Behavior
fix_element_size

Configure Fix Element Size Behavior
dagre_layout

Generate G6 AntV Dagre layout configuration
force_atlas2_layout

Generate G6 Force Atlas2 layout configuration
drag_element

Configure Drag Element Behavior
drag_canvas

Configure Drag Canvas Behavior
dendrogram_layout

Generate G6 Dendrogram layout configuration
g6_hide_elements

Hide/show elements in a g6 graph
g6_collapse_combo

Collapse or expand a combo element in a g6 graph
g6_get_nodes

Get the state of nodes/edges/combos in a g6 graph via proxy
edge_filter_lens

Configure Edge Filter Lens Plugin
g6_focus_elements

Focus on specific elements in a g6 graph via proxy
edge_options

Create Edge Options Configuration for G6 Graphs
g6_fit_center

Center graph
g6_add_nodes

Add nodes/edges/combos to a g6 graph via proxy
fullscreen

Configure Fullscreen Plugin
g6_remove_nodes

Remove nodes/edge/combos from a g6 graph via proxy
focus_element

Configure Focus Element Behavior
fruchterman_layout

Generate G6 Fruchterman layout configuration
g6_set_nodes

Set the state of nodes/edges/combos in a g6 graph via proxy
g6_update_nodes

Update nodes/edges/combos to a g6 graph via proxy
g6_igraph

Create a G6 Graph from an igraph Object
g6-shiny

Shiny bindings for g6
g6_layout

Set the layout algorithm for a g6 graph
g6_update_plugin

Update a plugin in a g6 graph via proxy
grid_line

Configure Grid Line Plugin
g6_canvas_resize

Resize the canvas of a g6 graph via proxy
g6_proxy

Create a proxy object to modify an existing g6 graph instance
g6_set_options

Set options for a g6 graph via proxy
g6_behaviors

Create G6 Graph Behaviors Configuration
node_style_options

Create Node Style Options for G6 Graphs
g6_update_behavior

Update a behavior in a g6 graph via proxy
g6_add_plugin

Add a plugin to a g6 graph via proxy
g6_set_theme

Set the theme for a g6 graph via proxy
history

Configure History Plugin
g6R-package

g6R: Graph Visualisation Engine Widget for R and 'shiny' Apps
g6

Create a G6 Graph Visualization
g6_plugins

Create a List of G6 Plugins
g6_options

Configure Global Options for G6 Graph
hull

Configure Hull Plugin
lasso_select

Configure Lasso Select Behavior
legend

Configure Legend Plugin
lesmis

Character network from "Les miserables" novel
toolbar

Configure Toolbar Plugin
tooltips

Configure Tooltip Plugin
tree

Example tree graph
snapline

Configure Snapline Plugin
minimap

Configure Minimap Plugin
node_options

Create Node Options Configuration for G6 Graphs
timebar

Configure Timebar Plugin
watermark

Configure Watermark Plugin
optimize_viewport_transform

Configure Optimize Viewport Transform Behavior
poke

Example pokemon data
hover_activate

Configure Hover Activate Behavior
zoom_canvas

Configure Zoom Canvas Behavior
radial

Example Network for radial layouts
radial_layout

Generate G6 Radial layout configuration
scroll_canvas

Configure Scroll Canvas Behavior
JS

Marks as string to be processed as a JS function
auto_adapt_label

Configure Auto Adapt Label Behavior
brush_select

Configure Brush Selection Interaction
animation_config

Create Animation Configuration for G6 Graphs
auto_fit_config

Create Auto-Fit Configuration for G6 Graphs
antv_dagre_layout

Generate G6 AntV Dagre layout configuration
bubble_sets

Configure Bubble Sets Plugin for G6
circular_layout

Generate G6 AntV circular layout configuration
canvas_config

Create Canvas Configuration for G6 Graphs
background

Configure Background Plugin for G6
concentric_layout

Generate G6 AntV Concentric layout configuration