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

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more