Public
Edited
Oct 21, 2024
3 forks
Importers
15 stars
Hello, A5Chandrupatla’s root-finding methodSidi’s root-finding methodRegular numbers
DruidJS worker
Natural breaksDistance to a segmentRay out of a convex hullWord Tour: 40k words and their friendsHello, @thi.ng/grid-iteratorsHead/tail breaksPseudo-blue noise shaderHow fast does walk-on-spheres converge?AoC 12: shortest path under constraintsKDE estimationPlot: Correlation heatmapPoisson Finish 2Poisson disk sampling functionsWoS with transportSimple and surprising sortLocal medianTime series topological subsamplingUnion-FindLevel set experiment 1Mean value coordinatesPoisson potentialMiddle-squareWorld of squares (spherical)World of squaresLargest Inscribed SquareHello, PyWaveletsGeothmetic meandianHello, Reorder.jsGeometric MedianImage FFTTransport to a mapDisc TransportTP3: Power Diagram and Semi-Discrete Optimal TransportThe blue waveHello, genetic-jsSliced Optimal TransportDruidJSSelf-Organizing Maps meet DelaunayHello, polygon-clippingseedrandom, minimalWalk on Spheres 2Walk on SpheresHello, AutoencoderKaprekar’s numberVoronoiMap2DHello, ccwt.jsPolygon TriangulationQuantile.invert?Linear congruential generatorHue blurNeedle in a haystackMoving average blurApollo 11 implementation of trigonometric functions, by Margaret H. Hamilton (march 1969)2D curves intersectionThe 2D approximate Newton-Raphson methodInverting Lee’s Tetrahedral projectionLinde–Buzo–Gray stipplingMean shift clustering with kd-tree2D point distributionsShortest pathKahan SummationHello, delatinDijkstra’s algorithm in gpu.jsLloyd’s relaxation on a graphManhattan DiameterManhattan VoronoiMobility landscapes — an introductionDijkstra’s shortest-path treeH3 odditiesProtein MatrixConvex Spectral WeightsSort stuff by similarityKrigingDelaunay.findTrianglen-dimensions binning?Travelling with a self-organizing mapUMAP-o-MaticMNIST & UMAP-jsHello UMAP-jsMean shift clusteringLevenshtein transitionRd quasi-random sequencesAutomated label placement (countries)Phyllotaxis explainedMotionrugsPlanar hull (Andrew’s monotone chain algorithm)South Africa’s medial axisTravelling salesperson approximation with t-SNEDistance to shoreWorkerngraph: pagerank, louvain…t-SNE VoronoiCloud ContoursCircular function drawingKruskal MazeMyceliumTravelling salesperson approximation on the globe, with t-SNEtsne.jstsne.js & worker
Also listed in…
Clustering
Hello
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// replaces `result = new druid.UMAP(data).transform()`
// Use Generators.observe for faster lookups
result = Generators.queue(
worker(
function* dr({ dr_method, data, dynamic }) {
// see https://github.com/saehm/DruidJS/issues/34#issuecomment-1671538179
// and https://github.com/saehm/DruidJS/issues/13#issuecomment-718252666
if (dynamic) {
yield* self.druid[dr_method].generator(data, {}); // show the steps
} else {
yield self.druid[dr_method].transform(data, {}); // show the end result
}
},
{ dr_method, data: normalized, dynamic },
`
importScripts(${JSON.stringify(
await require.resolve("@saehrimnir/druidjs@^0.7.3")
)});
`
)
)
Insert cell
Insert cell
import {worker} from "@fil/worker"
Insert cell
Insert cell
penguins_without_nan = penguins.filter((d) =>
columns.every((c) => !isNaN(d[c]))
)
Insert cell
normalized = {
const A = Array.from(penguins_without_nan, () => []);
for (const [k, c] of columns.entries()) {
const channel = Plot.valueof(penguins_without_nan, c);
const mean = d3.mean(channel);
const max = d3.max(channel);
const deviation = d3.deviation(channel);
for (let i = 0; i < channel.length; ++i) {
A[i][k] =
normalizeBy === "max"
? channel[i] / max
: normalizeBy === "deviation" || normalizeBy === "z-score" // alias
? (channel[i] - mean) / deviation
: normalizeBy === "log"
? Math.log10(channel[i])
: NaN; // unsupported method
}
}
return A;
}
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