The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
An alternative graph visualization tool that emphasizes aesthetics, providing default parameters that deliver out-of-the-box lovely visualizations.
Some features:
The package uses the grid
plotting system (just like
ggplot2
).
You can install the released version of netplot from CRAN with:
install.packages("netplot")
And the development version from GitHub with:
# install.packages("devtools")
::install_github("USCCANA/netplot") devtools
This is a basic example which shows you how to solve a common problem:
library(igraph)
#>
#> Attaching package: 'igraph'
#> The following objects are masked from 'package:stats':
#>
#> decompose, spectrum
#> The following object is masked from 'package:base':
#>
#> union
library(netplot)
#> Loading required package: grid
#>
#> Attaching package: 'netplot'
#> The following object is masked from 'package:igraph':
#>
#> ego
set.seed(1)
data("UKfaculty", package = "igraphdata")
<- layout_with_fr(UKfaculty)
l #> This graph was created by an old(er) igraph version.
#> Call upgrade_graph() on it to use with the current igraph version
#> For now we convert it on the fly...
plot(UKfaculty, layout = l) # ala igraph
V(UKfaculty)$ss <- runif(vcount(UKfaculty))
nplot(UKfaculty, layout = l) # ala netplot
::gplot(intergraph::asNetwork(UKfaculty), coord=l) sna
# Random names
set.seed(1)
<- sample(babynames::babynames$name, vcount(UKfaculty))
nam
<- nplot(
ans
UKfaculty,layout = l,
vertex.color = ~ Group,
vertex.nsides = ~ Group,
vertex.label = nam,
vertex.size.range = c(.01, .03, 4),
bg.col = "transparent",
vertex.label.show = .25,
vertex.label.range = c(10, 25),
edge.width.range = c(1, 4, 5),
vertex.label.fontfamily = "sans"
)
# Plot it!
ans
Starting version 0.2-0, we can use gradients!
|>
ans set_vertex_gpar(
element = "core",
fill = lapply(get_vertex_gpar(ans, "frame", "col")$col, \(i) {
radialGradient(c("white", i), cx1=.8, cy1=.8, r1=0)
}))
# Loading the data
data(USairports, package="igraphdata")
# Generating a layout naively
<- V(USairports)$Position
layout #> This graph was created by an old(er) igraph version.
#> Call upgrade_graph() on it to use with the current igraph version
#> For now we convert it on the fly...
<- do.call(rbind, lapply(layout, function(x) strsplit(x, " ")[[1]]))
layout <- stringr::str_remove(layout, "^[a-zA-Z]+")
layout[] <- matrix(as.numeric(layout[]), ncol=2)
layout
# Some missingness
which(!complete.cases(layout)), ] <- apply(layout, 2, mean, na.rm=TRUE)
layout[
# Have to rotate it (it doesn't matter the origin)
<- netplot:::rotate(layout, c(0,0), pi/2)
layout
# Simplifying the network
<- simplify(USairports, edge.attr.comb = list(
net weight = "sum",
name = "concat",
Passengers = "sum",
"ignore"
))
# Pretty graph
nplot(
net,layout = layout,
edge.width = ~ Passengers,
edge.color = ~
ego(col = "white", alpha = 0) +
alter(col = "yellow", alpha = .75),
skip.vertex = TRUE,
skip.arrows = TRUE,
edge.width.range = c(.75, 4, 4),
bg.col = "black",
edge.line.breaks = 10
)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.