Skip to content

PIK-ICoNe/EmbeddedGraphs.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmbeddedGraphs.jl

Example usage

The example requires

using EmbeddedGraphs
using Distances
using Graphs

Set the position of the vertices that need to be placed on the graph

positions = map(i->[rand(),rand()], 1:10)

Create the graph with a given SimpleGraph structure and positions

eg = EmbeddedGraph(SimpleGraph(10), positions)

In case you want to have a different metric this is possible with a third argument, where the points P and Q should be the positions of the vertices.

eg_minkowski = EmbeddedGraph(SimpleGraph(10), positions, (P, Q) -> minkowski(P, Q, 2.))

Calculate the distance between two vertices ...

eg[1,9]

... or likewise

euclidean(eg.vertexpos[1], eg.vertexpos[9])

Get the x value of all the vertices ...

vertices_loc(eg, 1)

... or y location

vertices_loc(eg, 2)

Get the Weightsmatrix with distances between every vertex ...

weights(eg, dense=true)

... or only a sparse matrix with only connected vertices

weights(eg, dense=false)

Add an edge

add_edge!(eg, 1, 9)
add_edge!(eg, 5, 7)

Remove an edge

rem_edge!(eg, 1, 9)

Add a vertex at position (0.1, 0.7)

add_vertex!(eg, [0.1, 0.7])

Remove a vertex

rem_vertex!(eg, 5)
rem_vertices!(eg, [1, 2, 3])

Plot the graph embedded in 2D

gplot(eg)