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)

# 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')

Monthly Downloads

260

Version

0.5.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

David Granjon

Last Published

December 9th, 2025

Functions in g6R (0.5.0)

dag

Example DAG graph
d3_force_layout

Generate G6 D3 Force layout configuration
drag_element

Configure Drag Element Behavior
drag_canvas

Configure Drag Canvas Behavior
edge_style_options

Create Edge Style Options for G6 Graphs
fish_eye

Configure Fish Eye Plugin
g6_hide_elements

Hide/show elements in a g6 graph
dendrogram_layout

Generate G6 Dendrogram layout configuration
g6_collapse_combo

Collapse or expand a combo element in a g6 graph
dagre_layout

Generate G6 AntV Dagre layout configuration
force_atlas2_layout

Generate G6 Force Atlas2 layout configuration
fruchterman_layout

Generate G6 Fruchterman layout configuration
collapse_expand

Configure Collapse Expand Behavior
focus_element

Configure Focus Element Behavior
fix_element_size

Configure Fix Element Size Behavior
fullscreen

Configure Fullscreen Plugin
g6_add_nodes

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

Configure Edge Filter Lens Plugin
edge_options

Create Edge Options Configuration for G6 Graphs
g6-shiny

Shiny bindings for g6
g6

Create a G6 Graph Visualization
g6_set_nodes

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

Remove nodes/edge/combos from a g6 graph via proxy
g6R-package

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

Focus on specific elements in a g6 graph via proxy
g6_node

G6 Graph Elements
g6_nodes

Create and validate lists of G6 elements
g6_set_options

Set options for a g6 graph via proxy
g6_set_theme

Set the theme for a g6 graph via proxy
g6_igraph

Create a G6 Graph from an igraph Object
g6_get_nodes

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

Check if an object is a g6_data object
g6_fit_center

Center graph
hull

Configure Hull Plugin
g6_update_behavior

Update a behavior in a g6 graph via proxy
poke

Example pokemon data
optimize_viewport_transform

Configure Optimize Viewport Transform Behavior
g6_update_layout

Execute layout for a g6 graph via proxy
minimap

Configure Minimap Plugin
g6_layout

Set the layout algorithm for a g6 graph
g6_options

Configure Global Options for G6 Graph
node_options

Create Node Options Configuration for G6 Graphs
node_style_options

Create Node Style Options for G6 Graphs
lesmis

Character network from "Les miserables" novel
drag_element_force

Configure Drag Element Force Behavior
g6_plugins

Create a List of G6 Plugins
g6_update_nodes

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

Check if an object is a list of G6 elements
g6_behaviors

Create G6 Graph Behaviors Configuration
g6_canvas_resize

Resize the canvas of a g6 graph via proxy
history

Configure History Plugin
g6_add_plugin

Add a plugin to a g6 graph via proxy
is_g6_node

Check if an object is a G6 element
timebar

Configure Timebar Plugin
toolbar

Configure Toolbar Plugin
g6_data

Create a g6_data object
hover_activate

Configure Hover Activate Behavior
edge_bundling

Configure Edge Bundling Plugin
lasso_select

Configure Lasso Select Behavior
zoom_canvas

Configure Zoom Canvas Behavior
g6_proxy

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

Update a plugin in a g6 graph via proxy
grid_line

Configure Grid Line Plugin
watermark

Configure Watermark Plugin
radial

Example Network for radial layouts
radial_layout

Generate G6 Radial layout configuration
legend

Configure Legend Plugin
scroll_canvas

Configure Scroll Canvas Behavior
snapline

Configure Snapline Plugin
tooltips

Configure Tooltip Plugin
tree

Example tree graph
as_g6_node

Coerce to a g6 element object
auto_fit_config

Create Auto-Fit Configuration for G6 Graphs
auto_adapt_label

Configure Auto Adapt Label Behavior
antv_dagre_layout

Generate G6 AntV Dagre layout configuration
background

Configure Background Plugin for G6
JS

Marks as string to be processed as a JS function
as_g6_nodes

Coerce to a list of g6_elements objects
animation_config

Create Animation Configuration for G6 Graphs
brush_select

Configure Brush Selection Interaction
bubble_sets

Configure Bubble Sets Plugin for G6
canvas_config

Create Canvas Configuration for G6 Graphs
create_edge

Configure Create Edge Behavior
context_menu

Configure Context Menu Behavior
circular_layout

Generate G6 AntV circular layout configuration
combo_combined_layout

Create an AntV Combo Combined Layout
concentric_layout

Generate G6 AntV Concentric layout configuration
compact_box_layout

Generate G6 AntV Compact Box layout configuration
combo_options

Create Combo Options Configuration for G6 Graphs
click_select

Configure Click Select Behavior