Public
Edited
Apr 23, 2023
3 forks
3 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
graph = {
return new graphlib.Graph({
nodes: data.nodes,
edges: data.edges,
});
}
Insert cell
Insert cell
circular = {
return new Layout.CircularLayout({
center: [200, 200],
radius: 150,
});
};
Insert cell
Insert cell
positions = {
return await circular.execute(graph);
}
Insert cell
Insert cell
Insert cell
displayNodesAndEdges(positions)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
random = {
return new Layout.RandomLayout();
};
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
{
const positions = await random.execute(graph, {
center: [centerXInRandomLayout, centerYInRandomLayout],
width: widthInRandomLayout,
height: heightInRandomLayout
});

return displayNodesAndEdges(positions);
}
Insert cell
Insert cell
grid = {
return new Layout.GridLayout();
};
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
mds = {
return new Layout.MDSLayout({
center: [200, 200]
});
};
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
concentric = {
return new Layout.ConcentricLayout({
center: [200, 200],
width: 400,
height: 400,
maxLevelDiff: 1.5
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
radial = {
return new Layout.RadialLayout({
center: [200, 200],
width: 400,
height: 400,
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
fruchterman = {
return new Layout.FruchtermanLayout({
center: [centerXInFruchtermanLayout, centerYInFruchtermanLayout],
width: widthInFruchtermanLayout,
height: heightInFruchtermanLayout,
maxIteration: maxIterationInFruchtermanLayout,
gravity: gravityInFruchtermanLayout,
speed: speedInFruchtermanLayout
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// viewof stopOrRestart = Inputs.button(
// [
// ["Stop", (value) => 0],
// ["Restart", (value) => 1]
// ],
// { value: 0 }
// )
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
d3force = {
return new Layout.D3ForceLayout({
center: [200, 200]
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
forceAtlas2 = {
return new Layout.ForceAtlas2Layout({
center: [centerXInForceAtlas2Layout, centerYInForceAtlas2Layout],
kr: krInForceAtlas2Layout,
kg: kgInForceAtlas2Layout,
ks: ksInForceAtlas2Layout,
tao: taoInForceAtlas2Layout,
preventOverlap: preventOverlapInForceAtlas2Layout,
dissuadeHubs: dissuadeHubsInForceAtlas2Layout,
barnesHut: barnesHutInForceAtlas2Layout
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
dagre = {
return new Layout.DagreLayout({
nodeOrder: nodeOrderInDagreLayout ? ["2", "3"] : undefined,
begin: [beginXInDagreLayout, beginYInDagreLayout],
rankdir: rankdirInGridLayout,
align: alignInGridLayout,
nodesep: nodesepInDagreLayout,
ranksep: ranksepInDagreLayout,
controlPoints: true
});
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
positionsCalculatedInWebWorker = await calculateLayoutInWebWorker()
Insert cell
Insert cell
Insert cell
Insert cell
positionsGridLayoutCalculatedInWebWorker = await calculateGridLayoutInWebWorker()
Insert cell
displayNodesAndEdges(positionsGridLayoutCalculatedInWebWorker)
Insert cell
Insert cell
Insert cell
positionsMDSLayoutCalculatedInWebWorker = await calculateMDSLayoutInWebWorker();
Insert cell
displayNodesAndEdges(positionsMDSLayoutCalculatedInWebWorker)
Insert cell
Insert cell
Insert cell
Insert cell
displayNodesAndEdges(positionsConcentricLayoutCalculatedInWebWorker)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
displayNodesAndEdges(positionsForceAtlas2LayoutCalculatedInWebWorker)
Insert cell
Insert cell
Insert cell
positionsDagreLayoutCalculatedInWebWorker = await calculateDagreLayoutInWebWorker()
Insert cell
displayNodesAndEdges(positionsDagreLayoutCalculatedInWebWorker, true, true)
Insert cell
Insert cell
graphlib = require("@antv/graphlib@2.0.0")
Insert cell
Layout = require("@antv/layout@1.0.0-alpha.19")
Insert cell
G = require("@antv/g")
Insert cell
Canvas2D = require("@antv/g-canvas@latest")
Insert cell
SVG = require("@antv/g-svg")
Insert cell
Dragndrop = require("@antv/g-plugin-dragndrop")
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more