Graph Visualisation Engine Widget for R and 'shiny' Apps

Create stunning network experiences powered by the 'G6' graph visualisation engine 'JavaScript' library < https://g6.antv.antgroup.com/en>. In 'shiny' mode, modify your graph directly from the server function to dynamically interact with nodes and edges. Select your favorite layout among 20 choices. 15 behaviors are available such as interactive edge creation, collapse-expand and brush select. 17 plugins designed to improve the user experience such as a mini-map, toolbars and grid lines. Customise the look and feel of your graph with comprehensive options for nodes, edges and more.


g6R

R-CMD-check Lifecycle:experimental CRANstatus Codecov testcoverage

g6R hex logo

{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).

A g6 graph deconstructed into its data, layout, options, behaviors and plugins layers

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()
  )

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("g6R")

0.6.5 by David Granjon, 3 months ago


https://github.com/cynkra/g6R, https://cynkra.github.io/g6R/


Report a bug at https://github.com/cynkra/g6R/issues


Browse source code at https://github.com/cran/g6R


Authors: David Granjon [aut, cre] , David Schoch [aut] , cynkra GmbH [fnd] , Bristol Myers Squibb [fnd]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports htmlwidgets, shiny

Suggests knitr, rmarkdown, quarto, igraph, roxy.shinylive, testthat, withr, stringr, htmltools, bslib


Imported by blockr.dag.

Suggested by kuzuR, lbugr.


See at CRAN