# @msrvida/sanddance Visually explore, understand, and present your data. ![sanddance-animation](https://user-images.githubusercontent.com/11507384/189461831-9467863e-bff8-47d2-aa03-ab2b74658814.gif) [Demo](https://microsoft.github.io/SandDance/app) ## Installation You will need to consider how to load the libraries that `sanddance` depends on, based on your build & deployment scenario. ## Installation via script tags Load dependencies via ` ``` A global variable named `SandDance` will be available to you. In your JavaScript, call the `use` function to pass the dependency libraries: ```js SandDance.use(vega); ``` ## Installation via Node.js Add these to the `dependencies` section of your `package.json`, then run `npm install`: ```json "@msrvida/sanddance": "^4", "vega": "^6.2" ``` Import these in your JavaScript, then call the `use()` function to pass the dependency libraries to `SandDance.VegaMorphCharts`: ```js import * as vega from 'vega'; import * as SandDance from '@msrvida/sanddance'; SandDance.use(vega); ``` ## Usage ```js // Begin with an array of data objects which have the same named properties: const data = [ { myX: 0, myY: 0, myZ: 0 }, { myX: 1, myY: 1, myZ: 1 }, { myX: 2, myY: 2, myZ: 2 }, ]; // Create an instance of the [SandDance Viewer Class](https://microsoft.github.io/SandDance/docs/sanddance/v4/classes/Viewer.html) with an HTML DOM node to use for display: const viewer = new SandDance.Viewer(document.querySelector('#vis')); // Specify the chart by using an [Insight object](https://microsoft.github.io/SandDance/docs/sanddance/v4/interfaces/specs.Insight.html) const insight = { columns: { x: 'myX', y: 'myY', z: 'myZ' }, size: { height: 700, width: 700 }, chart: 'scatterplot' }; // Render a chart, by calling the viewer's [render method](https://microsoft.github.io/SandDance/docs/sanddance/v4/classes/Viewer.html#render), passing the insight and the data: viewer.render({ insight }, data); ``` ## Versions ### 4.0.0 Changes * Use MorphCharts as WebGL engine ### 3.2.0 Changes * Show z-axis scale ### 3.1.0 Changes * Fix for animation easing * Text character set accepts all unicode ### Breaking changes in v4 * `viewer.render(insight)` now takes a higher level object, call as `viewer.render({insight})` ### Breaking changes in v3 * deck.gl dependency from 6.4 to 8.1 * new `searchExpression` namespace * `types.Search` moved here * `util.ensureSearchExpressionGroup` moved here * new `specs` namespace * `types.Insight` moved here * `ViewerOptions` colors are now `string` type * `VegaDeckGl.View` moved to `types.View` ### Breaking changes in v2 * vega dependency from 4.x to 5.x ## For more information Please visit the [SandDance website](https://microsoft.github.io/SandDance/).