## ---- include = FALSE--------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----call--------------------------------------------------------------------- library(NetworkDistance) ## ----load--------------------------------------------------------------------- data(graph20) # use `help(graph20)' to see more details. typeof(graph20) # needs to be a list ## ----showgraph, echo=FALSE, fig.align='center'-------------------------------- suppressMessages(library(igraph)) par(mfrow=c(1,2),pty="s") plot(graph_from_adjacency_matrix(graph20[[7]], mode="undirected"), vertex.size=7, vertex.label=NA, main="graph No.7", edge.arrow.size=.5) plot(graph_from_adjacency_matrix(graph20[[18]], mode="undirected"), vertex.size=7, vertex.label=NA, main="graph No.18", edge.arrow.size=.5) ## ----run---------------------------------------------------------------------- dist.gdd <- nd.gdd(graph20) # return as a 'dist' object ## ----run_vis1, echo=FALSE, fig.align='center'--------------------------------- par(pty="s") dmat = as.matrix(dist.gdd$D) image(dmat[,20:1],main="pairwise distance matrix",axes=FALSE,col=gray(0:100/100)) ## ----compare------------------------------------------------------------------ dist.wsd <- nd.wsd(graph20) # spectrum-weighted distance dist.dsd <- nd.dsd(graph20, type="SLap") # discrete spectral measure dist.nfd <- nd.nfd(graph20) # network flow distance ## ----run_vis2, echo=FALSE----------------------------------------------------- par(mfrow=c(1,3),pty="s") image(as.matrix(dist.wsd$D)[,20:1],main="nd.wsd",axes=FALSE,col=gray(0:100/100)) image(as.matrix(dist.dsd$D)[,20:1],main="nd.dsd",axes=FALSE,col=gray(0:100/100)) image(as.matrix(dist.nfd$D)[,20:1],main="nd.nfd",axes=FALSE,col=gray(0:100/100)) ## ----embed-------------------------------------------------------------------- gdd2 = stats::cmdscale(dist.gdd$D, k=2) # 2-d embedding from 'gdd' distance wsd2 = stats::cmdscale(dist.wsd$D, k=2) # 'wsd' dsd2 = stats::cmdscale(dist.dsd$D, k=2) # 'dsd' nfd2 = stats::cmdscale(dist.nfd$D, k=2) # 'nfd' ## ----embed_vis, echo=FALSE, fig.align="center"-------------------------------- par(mfrow=c(2,2)) plot(gdd2, main="embedding with 'gdd'", pch=19, xlab="x", ylab="y", cex=0.25) plot(wsd2, main="embedding with 'wsd'", pch=19, xlab="x", ylab="y", cex=0.25) plot(dsd2, main="embedding with 'dsd'", pch=19, xlab="x", ylab="y", cex=0.25) plot(nfd2, main="embedding with 'nfd'", pch=19, xlab="x", ylab="y", cex=0.25)