Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

saurfang/graphcoloring

Open more actions menu

Repository files navigation

graphcoloring

Travis build status CRAN status lifecycle Coverage status

graphcoloring is a collection of graph coloring algorithms for coloring vertices of a graph such that no two adjacent vertices share the same color. The algorithms are included via the embedded ‘GraphColoring’ C++ library, https://github.com/brrcrites/GraphColoring.

Installation

You can install the released version of graphcoloring from CRAN with:

install.packages("graphcoloring")

Development version can be installed with

devtools::install_github("saurfang/graphcoloring")

Example

color_* functions operate under tidygraph family and can be used to color nodes within mutate context similar to group_* functions in tidygraph.

library(graphcoloring)
library(tidygraph)
library(ggraph)

set.seed(42)

play_islands(5, 10, 0.8, 3) %>%
  mutate(color = as.factor(color_dsatur())) %>%
  ggraph(., layout = 'kk') +
  geom_edge_link(aes(alpha = ..index..), show.legend = FALSE) +
  geom_node_point(aes(color = color), size = 7) +
  theme_graph()

graph_coloring_* functions directly take adjacency lists and returns an integer vector of assigned labels. For example, this can be used with sf::st_intersects() to color a feature collection for visualization.

library(graphcoloring)
library(USAboundaries)
library(sf)
library(ggplot2)

set.seed(48)

us_states() %>%  
  filter(!(name %in% c("Alaska", "District of Columbia", "Hawaii", "Puerto Rico"))) %>%
  mutate(
    color = st_intersects(.) %>%
      graph_coloring_dsatur() %>%
      as.factor()
  ) %>%
  ggplot() +
  geom_sf(aes(fill = color)) +
  theme_bw()

Morty Proxy This is a proxified and sanitized view of the page, visit original site.