I am successfully interacting with a 3D graph created with LightGraphs, but plotly
backend is rather slow when I have 2000 nodes and 10,000 edges. It might be slow because the curvature
argument creates intermediate points on an edge modeled by a spline. However, there is no acceleration when curvature is zero, and yet, a straight line is sufficient. That is not reasonable. Also, when curvature is low, an edge could be modeled with a reduced number of intermediate nodes. So I created a graph with a single edge, and ran the following code (notice the x
,y
,z
arguments to graphplot.
using LightGraphs
using GraphRecipes
import Plots
Plots.plotly()
function plotGraph()
graph = SimpleGraph(20, 1)
nb_nodes = nv(graph)
xx = rand(nb_nodes)
yy = rand(nb_nodes)
zz = rand(nb_nodes)
p = graphplot(graph, dim=3, curvature=0, x=xx, y=yy, z=zz)
end
p = plotGraph()
The graph has edges associated with it. How is that possible? It is as if the position matrices are being used to create edges.
Any ideas?