A visualization grammar.

Overview

Vega: A Visualization Grammar

Vega Examples

Vega is a visualization grammar, a declarative format for creating, saving, and sharing interactive visualization designs. With Vega you can describe data visualizations in a JSON format, and generate interactive views using either HTML5 Canvas or SVG.

For documentation, tutorials, and examples, see the Vega website. For a description of changes between Vega 2 and later versions, please refer to the Vega Porting Guide.

Build Instructions

For a basic setup allowing you to build Vega and run examples:

  • Clone https://github.com/vega/vega.
  • Run yarn to install dependencies for all packages. If you don't have yarn installed, see https://yarnpkg.com/en/docs/install. We use Yarn workspaces to manage multiple packages within this monorepo.
  • Once installation is complete, run yarn test to run test cases, or run yarn build to build output files for all packages.
  • After running either yarn test or yarn build, run yarn serve to launch a local web server โ€” your default browser will open and you can browse to the "test" folder to view test specifications.

This repository includes the Vega website and documentation in the docs folder. To launch the website locally, first run bundle install in the docs folder to install the necessary Jekyll libraries. Afterwards, use yarn docs to build the documentation and launch a local webserver. After launching, you can open http://127.0.0.1:4000/vega/ to see the website.

ES5 Support

For backwards compatibility, Vega includes a babel-ified ES5-compatible version of the code in packages/vega/build-es5 directory. Older browser would also require several polyfill libraries:

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.4.4/polyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/runtime.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/fetch.umd.min.js"></script>

Contributions, Development, and Support

Interested in contributing to Vega? Please see our contribution and development guidelines, subject to our code of conduct.

Looking for support, or interested in sharing examples and tips? Post to the Vega discussion forum or join the Vega slack organization! We also have examples available as Observable notebooks.

If you're curious about system performance, see some in-browser benchmarks. Read about future plans in our roadmap.

Comments
  • width/height do not fully determine final graph size

    width/height do not fully determine final graph size

    When backend generates a graph, it needs to know the final size of the image in order to eliminate FOUC. This is especially important if the graph image is server-side generated - the HTML would need to contain the width/height of the image, so that the browser can lay out the page even before the image gets downloaded. The problem is that if the graph is user contributed, there is no way for the server to know the right size. We have been using top level width/height elements, but they are not the final results - vega can unexpectedly resize based on the presence of legend, marks whose coordinates are outside of 0..width x 0..height, large number of ordinal items in a scale, etc.

    I think that before Vega3 is out, we really should clean up this aspect. Without this, we cannot reliably generate HTML, nor can we effectively support mobile devices, as they are tightly coupled with the screen sizes.

    opened by nyurik 25
  • Add Arrow/Feather reader

    Add Arrow/Feather reader

    There's been some discussion over in the Feather repo about using the Arrow JS implementation to add an Apache Arrow IPC interface to Vega/Vega-lite.

    Adding this to Vega would save serialization costs when bringing data in from other contexts (like Altair does), allowing users to leverage Vega's aggregation and visualization capabilities while reading from arrow data with zero copies.

    I'd love to support this endeavor - I'm familiar with Apache Arrow JS so I can absolutely support from that side, but I don't know much about the Vega codebase so I would need assistance there.

    cc @wesm @jakevdp @ellisonbg

    feature-request 
    opened by TheNeuralBit 23
  • Add

    Add "flatten" transformation

    A very common usecase we see with Elasticsearch results is visualizing multi-level aggregation results such as these, or in a simplified form:

    [
      { key:'a', nested: [ {v:1}, {v:2} ]}
      { key:'b', nested: [ {v:3}, {v:4}, {v:5} ]}
    ]
    

    which needs to be flattened out into a form usable by Vega:

    [ {key:'a', v:1}, {key:'a', v:2}, {key:'b', v:3}, {key:'b', v:4}, {key:'b', v:5} ]
    

    I would like to propose a flatten transform with these params. I think some of them are similar to the lookup transform.

    {
      type: "flatten",
    
      // Should work the same way as "format.property" in "data",
      // e.g. allow values like "subfield[0].subsubfield".
      property: "nested"
    
      // Optionally keep just these fields from the current object (performance)
      // otherwise will keep everything.
      // For the above example, we don't need to keep the "nested" field in the result
      parentFieldsToKeep: ["key"]
    
      // Optionally copy just the selected values (performance)
      // otherwise will copy everything. Similar to "values" in lookup transform.
      // The above example has only the "v" field anyway, so this line has no effect.
      values: ["v"]
    
      // Optional, similar to "as" in lookup transform.
      // If subfieldToCopy is given, must be an array of the same size, otherwise must be a string.
      // For array, specifies that "v" (from above) should be set as "newV" in the object.
      // When copying the whole object, this is the 
      as: ["newV"]
    }
    

    Needs better param names.

    Flattening object subvalues

    This portion could be implemented at a later date. I did see a case like this, but I think this is less frequent than the above. Transform params are TBD.

    [
      { key:'a',  nested: {foo:1, bar:2}}
      { key:'b',  nested: {foo:3, bar:4, baz:5}}
    ]
    

    Expected result could be one of these. Either treat object as an array of one element:

    [ {key:'a', foo:1, bar:2}, {key:'b', foo:3, bar:4, baz:5} ]
    

    or convert each key-value pair into a separate object:

    [
     {key:'a', k:'foo', v:1}, {key:'a', k:'bar', v:2},
     {key:'b', k:'foo', v:3}, {key:'b', k:'bar', v:4}, {key:'b', k:'baz', v:5}
    ]
    

    The second case can be enabled with a flattenObjects: ["k", "v"], specifying the key-value field names. If the value is false, autoconvert objects to single value arrays. The default is TBD.

    Flattening other values

    In case the value is neither an array nor an object, we could treat it similar to the second variant of the object expansion. It becomes equivalent to a formula transform.

    [ { key:'a', nested: "meaning" },  { key:'b', nested: 42 } ]
    
    [ {key:'a', v:'meaning'}, {key:'b', v:42} ]
    

    Multi-level and multi-item flattening

    This could be solved by chaining several flatten transforms together. @jheer, if there is a significant performance hit of using several chained transforms to achieve this, lets define how to parametrize this. Otherwise, not worth it.

    There are two cases when multiple flattening operations may be required: multiple lists in the same object under different fields:

    [
      { key:'a',  nested1: [ {v:1}, {v:2} ],  nested2: [ {v:3}, {v:4} ]}
      { key:'b',  nested1: [ {v:5}, {v:6} ],  nested2: [ {v:7}, {v:8} ]}
    ]
    

    The second case is sub-level with sub-sub-level

    [
      { key:'a',  nested: [ { sub: [ {v:1}, {v:2} ] }, { sub: [ {v:3}, {v:4} ]}]}
      { key:'b',  nested: [ { sub: [ {v:5}, {v:6} ] }, { sub: [ {v:7}, {v:8} ]}]}
    ]
    

    This array of 8 values is the expected result in both cases:

    [
     {key:'a', v:1}, {key:'a', v:2}, {key:'a', v:3}, {key:'a', v:4},
     {key:'b', v:5}, {key:'b', v:6}, {key:'b', v:7}, {key:'b', v:8}
    ]
    
    feature-request 
    opened by nyurik 22
  • Problem with npm build of vega

    Problem with npm build of vega

    I am using vega in another npm package and am having some build problems with it. When I try to build everything, I find that vega isn't able to resolve some packages that are declared as dev dependencies but not runtime dependencies. More specifically I had to add the following to my package.json:

      "dependencies": {
        "browserify-shim": "^3.8.10",
        "browserify-versionify": "^1.0.6",
        "jstransform": "^11.0.3",
        "through": "^2.3.8",
        "vega": "^2.2.4",
        "vega-lite": "^0.7.15",
      },
      "browserify-shim": {
        "d3": "global:d3",
        "d3.layout.cloud": "global:d3.layout.cloud",
        "canvas": "global:canvas",
        "topojson": "global:topojson"
      },
    

    To get it to work. Are these meant to be actual dependencies or is something else off?

    question documentation 
    opened by ellisonbg 21
  • feat: add support for aria properties with defaults for guides

    feat: add support for aria properties with defaults for guides

    vega-parser

    • Add support for ariaLabel, ariaRole, ariaRoleDescription, and ariaHidden to encodings, axes, legends, and titles.
    • Automatically set the role of guide groups to graphics-object.
    • Create default descriptions for axes and legends.
    • Set default aria role and aria role description for marks.

    vega-schema

    • Add support for ariaLabel, ariaRole, ariaHidden, and ariaRoleDescription to encodings, axes, legends, and titles.

    vega-scenegraph

    • Add support for ariaLabel, ariaRole, ariaHidden, and ariaRoleDescription to SVG renderer.

    vega-typings

    • Add ariaLabel, ariaRole, ariaHidden, and ariaRoleDescription to encodings, axes, legends, and titles.

    Now we can support https://blog.tenon.io/accessible-charts-with-aria and https://www.w3.org/TR/graphics-aria-1.0/.

    To document:

    • What aria properties are exposed, what are the defaults.
    • Best practices for adding aria labels to marks.
    • Best practices for adding aria labels to groups to allow screen reader users to skip over large numbers of marks.
    blocking VL 
    opened by domoritz 19
  • Tooltip hover not working properly on Windows PC - Vega 4.2.0

    Tooltip hover not working properly on Windows PC - Vega 4.2.0

    Hello,

    My team and I are using Vega 4.2.0 (We would prefer not to upgrade to the latest version as it may break other parts of our app) and are encountering odd behavior with the tooltip only on Windows PC. For the bar charts, the tooltip does not correlate with where the user hovers the cursor. And for the line charts, the hover does not appear at all over the points.

    Screenshots: tooltip1 tooltip2

    We have tested on different Windows and Mac computers and in the following browsers with these specs:

    • Chrome Version 76.0.3809.100
    • Firefox Version 68.0.1
    • Microsoft Edge 44.18362.1.0

    The results seem consistent in that only Windows PCs experience this issue and it occurs in all browsers.

    We have a test build, which you can use to reproduce the issue with here: http://alpha.blueraster.io/gfw-mapbuilder/new-report-consolidated-builds/default/

    To replicate:

    1. Click on the pencil icon in the right panel.
    2. Click on the Start Drawing orange button.
    3. Draw a shape anywhere there's land on the map (shape must have a minimum of 3 points (triangle) to close. Double-click to close.)
    4. Select an analysis from the dropdown in the left panel.
    5. Click on Print Report button.
    6. The report view will generate Vega Charts for each analysis (some might fail or take some time to generate).
    7. Hover over the bars in CO2 EMISSIONS FROM BIOMASS LOSS or the points in GLAD ALERTS PER MONTH (other bar charts appear slightly off as well).

    For our Vega specs, here is the API call for the CO2 EMISSIONS FROM BIOMASS LOSS bar chart as an example: https://api.resourcewatch.org/v1/widget/ac38fdbd-fdb1-4d8e-9109-674013fb51a2?period=2001-01-01,2018-12-31&thresh=30&geostore=277e65fb0fbf5c6fb8f73143e559fc38& All of the specs for our charts are set up in a similar manner. We also add in {"type": "fit", "resize": true} and a signal to override the width:

    {
              name: "width",
              update: "containerSize()[0]*0.95",
              value: "",
              on: [
                {
                  events: {
                    source: "window",
                    type: "resize"
                  },
                  update: "containerSize()[0]*0.95"
                }
              ]
    }
    

    My team and I appreciate any assistance or suggestions on how to fix this bug. Thanks!

    opened by KaylaKremer 17
  • Logo and Branding for Vega and Vega-Lite

    Logo and Branding for Vega and Vega-Lite

    Vega still lives without a logo but it would be nice to have some recognizable branding.

    We could go with the logo style that Altair uses: https://github.com/altair-viz/altair/issues/212#issuecomment-338428670

    image

    Let's use this thread for further proposals and discussions.

    opened by domoritz 17
  • Optional `metadata` field

    Optional `metadata` field

    An optional metadata field at the top level of Vega and Vega-Lite specs can be used to add additional information to a spec that is ignored by the compiler. this metadata could be used by some custom preprocessing step.

    @kanitw @jheer @arvind, please reply with ๐Ÿ‘ or ๐Ÿ‘Ž so that @ericsoco can move forward.

    opened by domoritz 17
  • Responsive charts based on container size

    Responsive charts based on container size

    This is a Vega 3 feature request: Provide a way to resize the graph based on the container's height/width.

    With a combination of the window resize event and windowSize expression, there's a way to resize the graph based on the window's dimensions but not the container.

    I've been told a workaround is to update the view instance with the containers height/width on window resize.

    Example:

    $(window).on('resize', function() {
        // assume I have an element and viewInstance variables representing
        // the container, and vega View instance, respectively. 
        const $element = $(element)
        const width = $element.width();
        const height = $element.height();
        viewInstance.width(width).height(height).run();
    });
    

    Perhaps there is an easier and more elegant way to do this within Vega?

    feature-request 
    opened by GCheung55 17
  • Vega-Interpreter/Angular 9: CSP unsafe-eval still needs to be activated

    Vega-Interpreter/Angular 9: CSP unsafe-eval still needs to be activated

    Hallo,

    I am trying to use Vega-Interpreter in Angular 9 together with vega embed. In my CSP I do not allow unsafe-eval.

    I have all my Vega logic in one service. Here is the relevant code snippet:

    [..]
    
    import * as vegainterpret from 'vega-interpreter';
    import embed, {Mode,VisualizationSpec} from 'vega-embed';
    import { Renderers } from 'vega';
     [..]
    
        embedOpts.config={};
                embedOpts.config.ast=true;
           await embed(element, spec, embedOpts);
            
    

    Chrome throws the following error related to the CSP:

    ncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'".
        at Function (<anonymous>)
        at field.js:10
        at Module../node_modules/vega-tooltip/node_modules/vega-util/src/accessors.js (accessors.js:6)
        at __webpack_require__ (bootstrap:79)
        at Module../node_modules/vega-tooltip/node_modules/vega-util/index.js (index.js:1)
        at __webpack_require__ (bootstrap:79)
        at Module../node_modules/vega-tooltip/build/src/formatValue.js (formatValue.js:1)
        at __webpack_require__ (bootstrap:79)
        at Module../node_modules/vega-tooltip/build/src/Handler.js (Handler.js:1)
        at __webpack_require__ (bootstrap:79)
    

    I am not sure if further parts of Vega are affected as Chrome probably shows only the first issue and not the subsequent ones.

    This means I cannot activate CSP for the whole application.

    Did I apply the vega-interpreter wrongly? If not, how should I apply it? If yes, does the vega-interpreter only apply with embed, but not during general loading of the Vega modules?

    Thank you a lot.

    bug 
    opened by jornfranke 16
  • Incorrect types for Legend typings

    Incorrect types for Legend typings

    The Legend typings size, shape, strokeDash, strokeWidth, and opacity are all string, which seems incorrect. I believe this is what leads to the vega-lite schema for Legend not showing strokeWidth, even though it is present in LegendConfig: https://github.com/vega/vega-lite/blob/f72d8be7fba154437ceaf51ec332d066c1e89313/build/vega-lite-schema.json#L7311

    opened by marcprux 16
  • Wrong SVG chart padding/margin calculation when hosted on node.js

    Wrong SVG chart padding/margin calculation when hosted on node.js

    This issue is a continuation of problem described here: Extra padding added to the legend element #3616.

    Basically we have simple Node.js Vega rendering API running as Azure Function (Windows OS). The api accepts a POST request with Vega spec json in a body and returns SVG XML in response. Problem was also reproduced when hosting as AppService instead of Azure Function. While #3616 fixed the problem partially by adding the canvas package to the node_modules, the problem still persist. The margin is still different to what is exported by Online Vega editor.

    Here is the chart spec in Vega Editor

    The export svg (from Vega Online Editor) is compared to result SVG rendered by our function and the results look like this:

    image

    As you can see when chart is rendered on node.js server there is an extra margin added to the legend. Worth mentioning is fact that when we run exactly same node.js server on local dev machine, the margin is CORRECT!

    The code for the api:

    module.exports = async function (context, req) {
        try {
            const canvas = require('canvas');
            const vega = require('vega');
            const vview = new vega.View(vega.parse(req.body), { renderer: 'none' });
            let svg = await vview.toSVG(2);
            context.res = {
                body: svg,
                contentType: 'image/svg+xml'
            };
        }
        catch (error) {
            context.log(`Error during rendering vega chart: ${error}.`);
            context.res = {
                body: `Error during rendering vega chart: ${error}.`,
                status: 500
            };
        }
    }
    

    and the package.json file:

    {
      "name": "vegarendererapi_af",
      "version": "1.0.0",
      "description": "",
      "scripts": {
        "start": "func start",
        "test": "echo \"No tests yet...\""
      },
      "dependencies": {
        "canvas": "^2.10.2",
        "vega": "^5.22.1"
      }
    }
    

    Thanks

    bug 
    opened by mirosuav 0
  • chore(deps-dev): bump terser from 5.12.1 to 5.16.0

    chore(deps-dev): bump terser from 5.12.1 to 5.16.0

    Bumps terser from 5.12.1 to 5.16.0.

    Changelog

    Sourced from terser's changelog.

    v5.16.0

    • Disallow private fields in object bodies (#1011)
    • Parse #privatefield in object (#1279)
    • Compress #privatefield in object

    v5.15.1

    • Fixed missing parentheses around optional chains
    • Avoid bare let or const as the bodies of if statements (#1253)
    • Small internal fixes (#1271)
    • Avoid inlining a class twice and creating two equivalent but !== classes.

    v5.15.0

    • Basic support for ES2022 class static initializer blocks.
    • Add AudioWorkletNode constructor options to domprops list (#1230)
    • Make identity function inliner not inline id(...expandedArgs)

    v5.14.2

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    • Source maps improvements (#1211)
    • Performance improvements in long property access evaluation (#1213)

    v5.14.1

    • keep_numbers option added to TypeScript defs (#1208)
    • Fixed parsing of nested template strings (#1204)

    v5.14.0

    • Switched to @โ€‹jridgewell/source-map for sourcemap generation (#1190, #1181)
    • Fixed source maps with non-terminated segments (#1106)
    • Enabled typescript types to be imported from the package (#1194)
    • Extra DOM props have been added (#1191)
    • Delete the AST while generating code, as a means to save RAM

    v5.13.1

    • Removed self-assignments (varname=varname) (closes #1081)
    • Separated inlining code (for inlining things into references, or removing IIFEs)
    • Allow multiple identifiers with the same name in var destructuring (eg var { a, a } = x) (#1176)

    v5.13.0

    • All calls to eval() were removed (#1171, #1184)
    • source-map was updated to 0.8.0-beta.0 (#1164)
    • NavigatorUAData was added to domprops to avoid property mangling (#1166)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump prettier from 2.6.1 to 2.8.0

    chore(deps-dev): bump prettier from 2.6.1 to 2.8.0

    Bumps prettier from 2.6.1 to 2.8.0.

    Release notes

    Sourced from prettier's releases.

    2.8.0

    diff

    ๐Ÿ”— Release note

    2.7.1

    ๐Ÿ”— Changelog

    2.7.0

    diff

    ๐Ÿ”— Release note

    2.6.2

    ๐Ÿ”— Changelog

    Changelog

    Sourced from prettier's changelog.

    2.8.0

    diff

    ๐Ÿ”— Release Notes

    2.7.1

    diff

    Keep useful empty lines in description (#13013 by @โ€‹chimurai)

    # Input
    """
    First line
    

    Second Line """ type Person { name: String }

    Prettier 2.7.0

    """ First line Second Line """ type Person { name: String }

    Prettier 2.7.1

    """ First line

    Second Line """ type Person { name: String }

    2.7.0

    diff

    ๐Ÿ”— Release Notes

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by prettier-bot, a new releaser for prettier since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Request for expression functions: Number.toLocaleString and Date.toLocaleString

    Request for expression functions: Number.toLocaleString and Date.toLocaleString

    The methods .toLocaleString are part of javascript Number and Date objects that provide a convenient way to format numbers and dates in locale-specific formats, e.g. show currency in multiple locale formats side-by-side within the same web page.

    For now, these javascript methods can be accessed by defining custom Vega expression functions, but users in restricted Vega environments may not have access to javascript.

    Example question in StackOverflow.

    feature-request 
    opened by roying 0
  • chore(deps-dev): bump eslint from 8.11.0 to 8.28.0

    chore(deps-dev): bump eslint from 8.11.0 to 8.28.0

    Bumps eslint from 8.11.0 to 8.28.0.

    Release notes

    Sourced from eslint's releases.

    v8.28.0

    Features

    • 63bce44 feat: add ignoreClassFieldInitialValues option to no-magic-numbers (#16539) (Milos Djermanovic)
    • 8385ecd feat: multiline properties in rule key-spacing with option align (#16532) (Francesco Trotta)
    • a4e89db feat: no-obj-calls support Intl (#16543) (Sosuke Suzuki)

    Bug Fixes

    • c50ae4f fix: Ensure that dot files are found with globs. (#16550) (Nicholas C. Zakas)
    • 9432b67 fix: throw error for first unmatched pattern (#16533) (Milos Djermanovic)
    • e76c382 fix: allow * 1 when followed by / in no-implicit-coercion (#16522) (Milos Djermanovic)

    Documentation

    • 34c05a7 docs: Language Options page intro and tweaks (#16511) (Ben Perlmutter)
    • 3e66387 docs: add intro and edit ignoring files page (#16510) (Ben Perlmutter)
    • 436f712 docs: fix Header UI inconsistency (#16464) (Tanuj Kanti)
    • f743816 docs: switch to wrench emoji for auto-fixable rules (#16545) (Bryan Mishkin)
    • bc0547e docs: improve styles for versions and languages page (#16553) (Nitin Kumar)
    • 6070f58 docs: clarify esquery issue workaround (#16556) (Milos Djermanovic)
    • b48e4f8 docs: Command Line Interface intro and tweaks (#16535) (Ben Perlmutter)
    • b92b30f docs: Add Rules page intro and content tweaks (#16523) (Ben Perlmutter)
    • 1769b42 docs: Integrations page introduction (#16548) (Ben Perlmutter)
    • a8d0a57 docs: make table of contents sticky on desktop (#16506) (Sam Chen)
    • a01315a docs: fix route of japanese translation site (#16542) (Tanuj Kanti)
    • 0515628 docs: use emoji instead of svg for deprecated rule (#16536) (Bryan Mishkin)
    • 68f1288 docs: set default layouts (#16484) (Percy Ma)
    • 776827a docs: init config about specifying shared configs (#16483) (Percy Ma)
    • 5c39425 docs: fix broken link to plugins (#16520) (รdรกm T. Nagy)
    • c97c789 docs: Add missing no-new-native-nonconstructor docs code fence (#16503) (Brandon Mills)

    Chores

    • e94a4a9 chore: Add tests to verify #16038 is fixed (#16538) (Nicholas C. Zakas)
    • e13f194 chore: stricter validation of meta.docs.description in core rules (#16529) (Milos Djermanovic)
    • 72dbfbc chore: use pkg parameter in getNpmPackageVersion (#16525) (webxmsj)

    v8.27.0

    Features

    • f14587c feat: new no-new-native-nonconstructor rule (#16368) (Sosuke Suzuki)
    • 978799b feat: add new rule no-empty-static-block (#16325) (Sosuke Suzuki)
    • 69216ee feat: no-empty suggest to add comment in empty BlockStatement (#16470) (Nitin Kumar)
    • 319f0a5 feat: use context.languageOptions.ecmaVersion in core rules (#16458) (Milos Djermanovic)

    Bug Fixes

    • c3ce521 fix: Ensure unmatched glob patterns throw an error (#16462) (Nicholas C. Zakas)
    • 886a038 fix: handle files with unspecified path in getRulesMetaForResults (#16437) (Francesco Trotta)

    Documentation

    • ce93b42 docs: Stylelint property-no-unknown (#16497) (Nick Schonning)
    • d2cecb4 docs: Stylelint declaration-block-no-shorthand-property-overrides (#16498) (Nick Schonning)
    • 0a92805 docs: stylelint color-hex-case (#16496) (Nick Schonning)
    • 74a5af4 docs: fix stylelint error (#16491) (Milos Djermanovic)

    ... (truncated)

    Changelog

    Sourced from eslint's changelog.

    v8.28.0 - November 18, 2022

    • 34c05a7 docs: Language Options page intro and tweaks (#16511) (Ben Perlmutter)
    • 3e66387 docs: add intro and edit ignoring files page (#16510) (Ben Perlmutter)
    • 436f712 docs: fix Header UI inconsistency (#16464) (Tanuj Kanti)
    • f743816 docs: switch to wrench emoji for auto-fixable rules (#16545) (Bryan Mishkin)
    • bc0547e docs: improve styles for versions and languages page (#16553) (Nitin Kumar)
    • 6070f58 docs: clarify esquery issue workaround (#16556) (Milos Djermanovic)
    • b48e4f8 docs: Command Line Interface intro and tweaks (#16535) (Ben Perlmutter)
    • b92b30f docs: Add Rules page intro and content tweaks (#16523) (Ben Perlmutter)
    • 1769b42 docs: Integrations page introduction (#16548) (Ben Perlmutter)
    • 63bce44 feat: add ignoreClassFieldInitialValues option to no-magic-numbers (#16539) (Milos Djermanovic)
    • c50ae4f fix: Ensure that dot files are found with globs. (#16550) (Nicholas C. Zakas)
    • a8d0a57 docs: make table of contents sticky on desktop (#16506) (Sam Chen)
    • 9432b67 fix: throw error for first unmatched pattern (#16533) (Milos Djermanovic)
    • 8385ecd feat: multiline properties in rule key-spacing with option align (#16532) (Francesco Trotta)
    • a4e89db feat: no-obj-calls support Intl (#16543) (Sosuke Suzuki)
    • a01315a docs: fix route of japanese translation site (#16542) (Tanuj Kanti)
    • e94a4a9 chore: Add tests to verify #16038 is fixed (#16538) (Nicholas C. Zakas)
    • 0515628 docs: use emoji instead of svg for deprecated rule (#16536) (Bryan Mishkin)
    • e76c382 fix: allow * 1 when followed by / in no-implicit-coercion (#16522) (Milos Djermanovic)
    • 68f1288 docs: set default layouts (#16484) (Percy Ma)
    • e13f194 chore: stricter validation of meta.docs.description in core rules (#16529) (Milos Djermanovic)
    • 776827a docs: init config about specifying shared configs (#16483) (Percy Ma)
    • 72dbfbc chore: use pkg parameter in getNpmPackageVersion (#16525) (webxmsj)
    • 5c39425 docs: fix broken link to plugins (#16520) (รdรกm T. Nagy)
    • c97c789 docs: Add missing no-new-native-nonconstructor docs code fence (#16503) (Brandon Mills)

    v8.27.0 - November 6, 2022

    • f14587c feat: new no-new-native-nonconstructor rule (#16368) (Sosuke Suzuki)
    • 978799b feat: add new rule no-empty-static-block (#16325) (Sosuke Suzuki)
    • ce93b42 docs: Stylelint property-no-unknown (#16497) (Nick Schonning)
    • d2cecb4 docs: Stylelint declaration-block-no-shorthand-property-overrides (#16498) (Nick Schonning)
    • 0a92805 docs: stylelint color-hex-case (#16496) (Nick Schonning)
    • c3ce521 fix: Ensure unmatched glob patterns throw an error (#16462) (Nicholas C. Zakas)
    • 74a5af4 docs: fix stylelint error (#16491) (Milos Djermanovic)
    • 69216ee feat: no-empty suggest to add comment in empty BlockStatement (#16470) (Nitin Kumar)
    • 324db1a docs: explicit stylelint color related rules (#16465) (Nick Schonning)
    • 94dc4f1 docs: use Stylelint for HTML files (#16468) (Nick Schonning)
    • cc6128d docs: enable stylelint declaration-block-no-duplicate-properties (#16466) (Nick Schonning)
    • d03a8bf docs: Add heading to justification explanation (#16430) (Maritaria)
    • 886a038 fix: handle files with unspecified path in getRulesMetaForResults (#16437) (Francesco Trotta)
    • 319f0a5 feat: use context.languageOptions.ecmaVersion in core rules (#16458) (Milos Djermanovic)
    • 8a15968 docs: add Stylelint configuration and cleanup (#16379) (Nick Schonning)
    • 9b0a469 docs: note commit messages don't support scope (#16435) (Andy Edwards)
    • 1581405 docs: improve context.getScope() docs (#16417) (Ben Perlmutter)
    • b797149 docs: update formatters template (#16454) (Milos Djermanovic)
    • 5ac4de9 docs: fix link to formatters on the Core Concepts page (#16455) (Vladislav)
    • 33313ef docs: core-concepts: fix link to semi rule (#16453) (coderaiser)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • "Header size too large" when trying to render chart JSON passed from Python backend to JS frontend

    Hello,

    As the title states, I am creating a full-stack dashboard where I do some Python data analysis and then visualization using Altair on the backend and then design the dashboard with React on the front-end. Obviously, I would like those same charts to display on the front-end.

    Creating the chart and then passing the related JSON to the front-end is pretty straightforward. I simply define a route in Python and then create a function that returns the chart:

    chart = altair.Chart(XXX)

    chartJson = chart.to_json()

    chartFile= json.dumps(chartJson)

    On the front end, I use Axios to get the chart's JSON and then I save it by setting it as a variable within a useState hook. I can then access the variable and print it, without a problem. Even on the front-end, it appears to be properly designed as a JSON object.

    const [chart, setChart] = useState("");

    The issue is that when I try to render the chart using react-Vega using the following conditional render:

    {chart ? <Vega spec={chart} /> : ""}

    I get the following error:

    ERR_ABORTED 431 (Request Header Fields Too Large)

    This doesn't make sense to me, since I have already passed over the chart's JSON file successfully to the front-end? When I examine the JSON, it looks OK. In fact, if I copy it exactly from my devtools console and paste it into a new front-end React component using the above Vega command, it renders just fine. So, it appears to be in the correct format.

    I have tried using Fetch to access the JSON file, and still had the same error. I also tried json.stringify() on the file, but that also made no difference.

    Has anyone else experienced this issue before, or can please help me with it? Thanks in advance,

    bug 
    opened by robliou 0
Releases(v5.22.1)
  • v5.22.1(Mar 25, 2022)

  • v5.22.0(Mar 11, 2022)

    Changes from v5.21.0:

    docs

    • Add Packed Bubble Chart example. (thanks @PBI-David!)
    • Improve TimeUnit transform documentation.

    monorepo

    • Update dependencies, including D3 ESM packages.
    • Update rollup config to bundle ESM packages for CJS use.
    • Update tests to match new dependencies.
    • Bump minor version numbers for all affected modules.

    vega-functions

    • Add lasso selection expression functions. (thanks @dvmoritzschoefl!)
    • Suppress unsupported expression function arguments.

    vega-label

    • Fix to not assume that a label always has some part inside the chart's bounding box. (thanks @chanwutk!)

    vega-scenegraph

    • Fix SVG path close logic. (#3377)
    • Fix SVG renderer dirty check. (#3411).
    • Fix SVG path string parser, update tests. (#3432)
    • Fix SVG mix-blend-mode to use style attribute. (#3435)

    vega-selections

    • Optimize selection functions for ID-only stores. (thanks @arvind!)

    vega-transforms

    • Fix TimeUnit transform updates.

    vega-typings

    • Limit type linting to local TypeScript version only. (thanks @domoritz!)
    • Adjust EventListenerHandler typings. (#3390)
    Source code(tar.gz)
    Source code(zip)
  • v5.21.0(Sep 21, 2021)

    Changes from v5.20.2:

    monorepo

    • Update dependencies.

    vega

    • Update test scenegraphs.

    vega-event-selector

    • (Breaking) Change exported method name.

    vega-expression

    • (Breaking) Change exported method names.

    vega-label

    • Add support for infinite padding, no bounds on label layout. (#3252)

    vega-loader

    • Fix loader so that baseURL is not prepended to data: URLs. (#3195)
    • Minor refactoring.

    vega-parser

    • Update depenencies.

    vega-runtime

    • Dead code elimination for runtime expression instantiation.
    • Minor refactoring.

    vega-statistics

    • Fix sampleCurve utility to properly scale values in angle subdivision test. (#3173)

    vega-typings

    • Update typings. (thanks @danmarshall and @domoritz!)

    vega-util

    • Allow customization of logger handler. (thanks @challet!)
    Source code(tar.gz)
    Source code(zip)
  • v5.20.1(Mar 29, 2021)

    Changes from v5.20.0:

    monorepo

    • Update dependencies.

    vega-dataflow

    • Fix memory leak on dataflow detach. (thanks @krisdages!)

    vega-transforms

    • Fix memory leak on dataflow detach. (thanks @krisdages!)

    vega-typings

    • Update typing comments for bindings and projections to fill-in missing Vega-Lite documentation.
    Source code(tar.gz)
    Source code(zip)
  • v5.20.2(Mar 30, 2021)

  • v5.20.0(Mar 16, 2021)

    Changes from v5.19.1:

    monorepo

    • Update CI configuration. (thanks @domoritz!)
    • Update build configuration. (thanks @domoritz!)
    • Update dependencies.

    vega

    • Add web test for external element binding.

    vega-scenegraph

    • Add early exit for image rendering with zero width or height.

    vega-schema

    • Add signal binding to external input element.

    vega-typings

    • Add signal binding to external input element.

    vega-util

    • Update inherit utility to use defineProperty, avoids upsetting configurations that ban assignment overrides of Object prototype properties. (#3109, thanks @erights!)

    vega-view

    • Add signal binding to external input element.
    Source code(tar.gz)
    Source code(zip)
  • v5.19.1(Jan 21, 2021)

  • v5.19.0(Jan 21, 2021)

    Changes from v5.18.0:

    vega-functions

    • Add pluck expression function. (thanks @arvind!)
    • Add additional Vega-Lite selection helper methods. (thanks @arvind!)

    vega-parser

    • Fix signal check for data source values property. (thanks @domoritz!)

    vega-scenegraph

    • Fix namespace use for SVG metadata. (thanks @mbostock!)
    • Update to JSON schema draft 7. (thanks @domoritz!)

    vega-schema

    • Update to JSON schema draft 7. (thanks @domoritz!)

    vega-selections

    • Add additional Vega-Lite selection helper methods. (thanks @arvind!)
    Source code(tar.gz)
    Source code(zip)
  • v5.18.0(Jan 8, 2021)

    Changes from v5.17.3:

    vega

    • Refactor: import only default from JSON files. (thanks @keller-mark!)

    vega-functions

    • Update vega-selections dependency.

    vega-selections

    • Add Vega-Lite v5 "point" selection support. (thanks @arvind!)
    Source code(tar.gz)
    Source code(zip)
  • v5.17.3(Dec 23, 2020)

    Changes from v5.17.2:

    vega-expression

    • Remove unsafe replace function. (#3027)

    vega-functions

    • Add replace function with input type check. (#3027)

    vega-parser

    • Update dependencies.

    vega-view

    • Update dependencies.
    Source code(tar.gz)
    Source code(zip)
  • v5.17.2(Dec 23, 2020)

    Changes from v5.17.1:

    vega-expression

    • Remove unsafe sequence functions. (#3027)

    vega-functions

    • Add sequence functions with input type checks. (#3027)

    vega-parser

    • Update dependencies.

    vega-schema

    • Fix JSON schema bug (#3025, thanks @domoritz!)

    vega-selections

    • Update dependencies.

    vega-view

    • Update dependencies.
    Source code(tar.gz)
    Source code(zip)
  • v5.17.1(Dec 21, 2020)

    Changes from v5.17.0:

    vega-geo

    • Fix contour quantize bug. (#2994)

    vega-expression

    • Fix XSS vulnerability in expression parser and code generator. (#3018)

    vega-typings

    • Remove incorrect comment for Interpolate type.
    Source code(tar.gz)
    Source code(zip)
  • v5.17.0(Oct 1, 2020)

    Changes from v5.16.1:

    vega-canvas

    • Fix browser index route for ES modules. (#2907)

    vega-loader

    • Add iterable support to JSON loader. Iterable inputs are expanded to arrays, then ingested.
    • Fix browser index route for ES modules. (#2907)

    vega-util

    • Add isIterable utility.
    Source code(tar.gz)
    Source code(zip)
  • v5.16.1(Sep 23, 2020)

  • v5.16.0(Sep 23, 2020)

    Notable Changes

    • The new label transform automatically positions labels without overlapping other marks. (Thanks @chanwutk!)
    • Completes the transition to using vega-datasets 2.0+, including swapping out the Iris dataset for a more adorable Penguins dataset. ๐Ÿง
    • Major update of build system to use a centralized rollup configuration. (Thanks @domoritz!)

    Changelog

    Changes from v5.15.0:

    docs

    monorepo

    • Complete transition to vega-datasets 2.0.
    • Use centralized rollup config. (thanks @domoritz!)

    vega

    • Use centralized rollup config. (thanks @domoritz!)
    • Update and extend test specifications.

    vega-canvas

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-crossfilter

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-dataflow

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-encode

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-event-selector

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-expression

    • Use forbidden / allowed, remove blacklist / whitelist (Breaking change)
    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-functions

    • Use centralized rollup config. (thanks @domoritz!)
    • Use argument spread syntax. (thanks @lgrammel!)

    vega-force

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-format

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-geo

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-hierarchy

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-interpreter

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-label

    • 1.0.0 release, now integrated into Vega! (thanks @chanwutk!)
    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-loader

    • Fix JSON copy option logic. (#2890, thanks @cytomich!)
    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-parser

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-projection

    • Use centralized rollup config. (thanks @domoritz!)

    vega-projection-extended

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-regression

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-runtime

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)
    • Use argument spread syntax. (thanks @lgrammel!)

    vega-scale

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-scenegraph

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)
    • Use argument spread syntax. (thanks @lgrammel!)

    vega-schema

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-selections

    • Use centralized rollup config. (thanks @domoritz!)
    • Use argument spread syntax. (thanks @lgrammel!)

    vega-statistics

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-time

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-transforms

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-typings

    • Update view typings. (#2846, thanks @domoritz!)
    • Fix image mark config. (#2871, thanks @domoritz!)

    vega-util

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-view-transforms

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-view

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)

    vega-voronoi

    • Use centralized rollup config. (thanks @domoritz!)

    vega-wordcloud

    • Fix use of var, prefer const and let. (thanks @lgrammel!)
    • Use centralized rollup config. (thanks @domoritz!)
    Source code(tar.gz)
    Source code(zip)
  • v5.15.0(Aug 31, 2020)

    Changes from v5.14.0:

    monorepo

    • Update dependencies, including use of D3 v6 packages.
    • Refactor all packages for JavaScript modernization. (thanks @domoritz & @lgrammel!)

    vega

    • Update vega-core build to use D3 v6.

    vega-scale

    • Add turbo and cividis color palettes. (thanks @mcnuttandrew!)
    Source code(tar.gz)
    Source code(zip)
  • v5.14.0(Aug 18, 2020)

    Notable Changes

    • Update SVG rendering to produce fully compliant XML. (#2672)
    • Major refactoring of the Vega code to be more lean and modern. The main changes are:
      • Use shorthand property method syntax (e.g., rather than assignment to prototype objects).
      • Use arrow functions rather than function declarations where appropriate.
      • Prefer use of let and const to var.
    • Upgrade the documentation examples to use vega-datasets 2.0+, including swapping out the Iris dataset for a more adorable Penguins dataset. ๐Ÿง
    • Various bug fixes, documented below.

    Changelog

    Changes from v5.13.0:

    vega-cli

    • Update SVG test output.

    vega-canvas

    • Update to use leaner syntax.

    vega-crossfilter

    • Update to use leaner syntax.

    vega-dataflow

    • Fix EventStream to support detach method. (#2753)
    • Fix Pulse addAll to clear rem set when applicable. This prevents tuple removal from being invoked on newly instantiated operators that never observed those tuples in the first place. (#2605)
    • Update to use leaner syntax.

    vega-encode

    • Update to use leaner syntax.

    vega-event-selector

    • Update to use leaner syntax.

    vega-expression

    • Update to use leaner syntax.

    vega-force

    • Update to use leaner syntax.

    vega-format

    • Update to use leaner syntax.

    vega-functions

    • Update to use leaner syntax.

    vega-geo

    • Update to use leaner syntax.

    vega-hierarchy

    • Update to use leaner syntax.

    vega-label

    • Update to use leaner syntax.

    vega-loader

    • Update to use leaner syntax.

    vega-parser

    • Fix production rule support for guides. (#2754)
    • Update to use leaner syntax.

    vega-projection

    • Update to use leaner syntax.

    vega-regression

    • Update to use leaner syntax.

    vega-scale

    • Update to use leaner syntax.

    vega-scenegraph

    • Add markup and serializeXML utilities for SVG string output. Ensure proper XML output. (#2672)
    • Fix leaky SVG scaleX/Y transforms on non-path marks. (#2738)
    • Fix bounds calculation for rotated paths. (#2780)
    • Fix canvas picking for clipped groups with corner radius and no fill. (#2797)
    • Fix SVG path parsing: support concatenated decimals and implicit lineTo commands. (#2803)
    • Update tests, add xmllint checks to test conformance of SVG output.
    • Update to use leaner syntax.
    • Internal Breaking Change: Update SVGStringRenderer class methods to use markup utility.
    • Internal Breaking Change: Drop openTag, closeTag utilities.

    vega-statistics

    • Update to use leaner syntax.

    vega-time

    • Update to use leaner syntax.

    vega-transforms

    • Update to use leaner syntax.

    vega-view-transforms

    • Update to use leaner syntax.

    vega-view

    • Update to use leaner syntax.

    vega-util

    • Add members argument to inherits utility.
    • Add ascending comparator utility.
    • Update to use leaner syntax.

    vega-voronoi

    • Update to use leaner syntax.

    vega-wordcloud

    • Update to use leaner syntax.
    Source code(tar.gz)
    Source code(zip)
  • v5.13.0(Jun 2, 2020)

    Notable Changes

    • Improved Streaming Performance.

      For performance, Vega caches a lot of internal data structures, including calculated tuples, scenegraph items, and SVG DOM nodes. Previously, nested scopes (such as those created for facetted data) that result in vega-runtime subcontexts were never cleaned. If no external View API calls are made, this is fine, and actually improves performance for interaction-driven dynamic filtering. However, when providing streaming data to Vega through the View API, uncleaned caches and subcontexts can result in substantial memory leaks that also eventually degrade performance.

      This version adds mechanisms for clearing caches and detaching subflows to support streaming data within nested specifications. When input data is removed via a View API call or via signal-valued URL, Vega will now by default trigger garbage collection to reclaim resources. This behavior can be disabled by calling clean(false) on a constructed ChangeSet passed to the View API.

    • Improved Cursor Performance.

      Previously Vega updated the cursor style on the HTML document body. This persists cursor settings even during interactions (such as drags) that may leave the Vega View component. However, it also can result in large performance penalties in Chrome, which re-evaluates CSS styles in response. This version changes the default behavior to set the cursor locally on the Vega View component. If a global cursor is desired, the boolean config property events.globalCursor can be set true or the View method globalCursor can be invoked to change the setting at runtime.

    • Optional Expression Interpreter.

      This release adds interpreter support for Vega expressions that is Content Security Policy (CSP) compliant. By default, the Vega parser performs code generation for parsed Vega expressions, and the Vega runtime uses the Function constructor to create JavaScript functions from the generated code. Although the Vega parser includes its own security checks, the runtime generation of functions from source code nevertheless violates security policies designed to prevent cross-site scripting.

      This release provides an interpreter plug-in (the new vega-interpreter package) that evaluates expressions by traversing an Abstract Syntax Tree (AST) for an expression and performing each operation in turn. Use of the interpreter enables compliance with CSP, but can incur a performance penalty. In tests of initial parse and dataflow evaluation times, the interpreter is on average ~10% slower. Interactive updates may incur higher penalties, as they are often more expression-heavy and amortize the one-time cost of Function constructor parsing.

    Changelog

    Changes from v5.12.3:

    vega

    • Update stream.html and stream-nested.html performance test pages.

    vega-dataflow

    • Add detach method to Operator to remove adjacent edges (listeners) from the dataflow graph.
    • Add clean setter to ChangeSet, set to true by default if any tuples are removed.
    • Add clean getter/setter to Pulse, propagate value to forked pulses if they share a data source.
    • Update logging calls during Dataflow evaluation.

    vega-encode

    • Update DataJoin transform to clean internal map when pulse.clean() is true.
    • Update Scale to include domainMid as an extrema if it exceeds the domain min or max. (#2656)

    vega-functions

    • Fix scale function to not special case undefined input. This ensures identical semantics with the internal _scale helper function used by code-generated encoders.

    vega-geo

    • Update d3-geo dependency.

    vega-interpreter

    • Add new vega-interpreter package.

    vega-projection

    • Update d3-geo dependency.

    vega-projection-extended

    • Update vega-projection dependency.

    vega-runtime

    • Add runtime detach method to remove subcontexts. Export as detachSubflow on the head operator of a generated subflow.
    • Add pluggable expression evaluators.

    vega-statistics

    • Fix numbers utility to exclude empty string.

    vega-transforms

    • Update Aggregate transform to clean internal map when pulse.clean() is true.
    • Update Facet, PreFacet, and Subflow transforms to prune subflows in response to pulse.clean().
    • Update Load transform to set pulse.clean(true) when removing loaded data.
    • Fix Bin and Extent to treat empty string as a missing value. (thanks @domoritz!)
    • Fix aggregate ops to treat empty string as a missing value.

    vega-typings

    • Add eventConfig.globalCursor to config typings.
    • Add dataflow logger to typings.
    • Add parse options to typings.

    vega-util

    • Refactor code for fastmap and visitArray utilities.

    vega-view

    • Add View constructor option expr to pass in a custom expression evaluator.
    • Add globalCursor method and event configuration.
    • Update to make the Vega view container the default cursor target.
    Source code(tar.gz)
    Source code(zip)
  • v5.12.3(May 23, 2020)

    Notable Changes

    The previous Vega v5.12.0 release introduced changes to how SVG was generated, including the addition of an internal stylesheet. However, this leads to integration issues with downstream tools (including at least one popular SVG optimizer) that do not support stylesheet parsing. In addition, local performance tests indicate faster rendering in Chrome when using presentation attributes instead of CSS styling. This version (v5.12.3) now changes the SVG output to favor presentation attributes (fill="blue") over CSS style (style="fill: blue;").

    CSS styles have been removed in all but one case: the use of image-rendering for non-smoothed images, where browser differences require multiple style definitions to appease both Chrome and Firefox, something we can't express with presentation attributes alone. If and when Firefox properly supports image-rendering: pixelated we can consider dropping this last use of CSS.

    Note that external stylesheets can still be used to style Vega SVG content, and may now have higher specificity due to the use of attributes.

    Changelog

    Changes from v5.12.2:

    monorepo

    • Update eslint config to flag trailing commas.

    vega

    • Add initialization timing to test spec viewer page.
    • Remove dangling commas.
    • Update dev dependencies.

    vega-cli

    • Update SVG test cases.

    vega-format

    • Remove dangling commas.

    vega-geo

    • Remove dangling commas.

    vega-hierarchy

    • Remove dangling commas.

    vega-parser

    • Fix trailing function argument commas in axis utils. (#2645, thanks @armanozak!)
    • Remove dangling commas.

    vega-projections-extended

    • Update dev dependencies.

    vega-scenegraph

    • Favor SVG presentation attributes over CSS style. (#2640)
    • Fix clipped group picking for canvas. (#2600)
    • Remove dangling commas, other code clean-up.

    vega-schema

    • Remove dangling commas.

    vega-time

    • Remove dangling commas.

    vega-transforms

    • Remove dangling commas.
    Source code(tar.gz)
    Source code(zip)
  • v5.12.2(May 22, 2020)

    Changes from v5.12.1:

    vega-scenegraph

    • Add canvas handler event listeners necessary for state management. Fixes a regression introduced in v5.12.1. (#2641)

    vega-typings

    • Fix typings for locale specification and View API. (thanks @haldenl!)
    Source code(tar.gz)
    Source code(zip)
  • v5.12.1(May 19, 2020)

    Changes from v5.12.0:

    monorepo

    • Switch from Travis CI to GitHub Actions. (thanks @domoritz!)

    vega-cli

    • Add tests for vega-cli.

    vega-parser

    • Update code style for config constants.

    vega-scenegraph

    • Add class to svg root group, localize SVG stylesheet to that class. (#2618)
    • Lazily register CanvasHandler event listeners. By avoiding unneeded listeners, this change avoids a number of passive listener violation warnings. (#2621)

    vega-transforms

    • Fix regression of string to number conversion in aggregate sum op. (thanks @haldenl!)

    vega-typings

    • Update View typings.
    • Fix missing color schemes in typings. (thanks @domortiz!)

    vega-view

    • Code clean up.
    Source code(tar.gz)
    Source code(zip)
  • v5.12.0(May 15, 2020)

    Notable Additions

    • View-specific locale management for number and date formatting. The View constructor accepts a locale option, and Vega specs support a config.locale property. Locale objects should have number and/or time properties that map to valid d3-format or d3-time-format locale definitions.
    • View toCanvas now accepts an externalContext option to draw into a separately managed canvas instance. For example, one could draw multiple Vega views into the same node-canvas instance for server-side PDF document generation.
    • Initial support for signal-valued axis orient properties. This addition allows the position of an axis (e.g., left versus right) to be dynamically updated at runtime. The feature should be considered experimental; subtle bugs may still arise.
    • Internal refactoring to support content security policy (CSP) in the future. The Vega parser accepts an ast option flag to include generated abstract syntax trees for expressions in the parser output. All Function constructor use for generated code is now consolidated into a single file in the vega-runtime package and could be overridden if an expression AST interpreter is implemented.
    • Bug fixes! See below...

    Changelog

    Changes from v5.11.1:

    vega

    • Update bar-time test specification to test locale config usage.
    • Update budget-forecasts test specification.
    • Update to use refactored runtime context.

    vega-cli

    • Update to use locale view constructor option.

    vega-dataflow

    • Add locale property to set a dataflow-specific locale for number and date formatting.

    vega-encode

    • Update to use centralized locale management. Transforms now access the dataflow-specific locale via the input pulse.

    vega-expression

    • Fix handling of this global variable.

    vega-format

    • New package for format methods that centralizes locale management.

    vega-functions

    • Add centralized locale management. Format functions now access the dataflow-specific locale via the runtime context object, available to expression functions via the this context.
    • Add and export expression parser, support AST export option.
    • Add internal scale functions for use by encoders.
    • Fix scale dependencies: non-literal scale references should depend on all scales.

    vega-geo

    • Fix contour, density2D size setter input checks.

    vega-loader

    • Add UTC parser parameter to read method.
    • Use the default locale when custom time format parsers are not provided.

    vega-parser

    • Internal breaking change: Output runtime specification has changed the encoding of parsed expression functions. Generated code is now wrapped in an object and stored in the code property.
    • Internal breaking change: Generated expression code no longer includes method variable definitions or additional logic. These have been moved to vega-runtime.
    • Add signal support for axis translate property. (Thanks @haldenl!)
    • Add experimental signal support for axis orient property. (Thanks @haldenl!)
    • Add parsing of locale config, include in runtime spec output.
    • Add options argument to parse.
    • Add boolean ast parse option to enable AST output from expression parser.
    • Refactor to use expression parser for synthesized encoder logic.
    • Fix circular dependencies.

    vega-runtime

    • Internal breaking change: The runtime now assumes the updated vega-parser output format. All code generation beyond standard expression parser output has now been consolidated into the runtime parsing process.
    • Propagate locale config to runtime context object.
    • Refactor code, add optimized code generation for accessors and comparators.
    • Refactor all non-standard code generation to the runtime context.
    • Fix circular dependencies.

    vega-scale

    • Internal breaking change: Update to use centralized locale management. Formatting methods now require a locale parameter as the first argument.
    • Fix valid tick method to sort ticks based on scale range values. (#2579)

    vega-scenegraph

    • Add externalContext CanvasRenderer option. (Thanks @pixelspark!)
    • Add resetSVGDefIds to reset gradient and clip id counter. (Thanks @kanitw!)
    • Add SVG style block, set default fill and miter limit values. (#2498)
    • Update SVG test outputs.
    • Update to use centralized locale management. The ARIA caption generators access the dataflow-specific locale via the runtime context object.
    • Update reference to axis orient.
    • Fix SVG radial gradient pattern fill to use style, not fill attribute.
    • Fix ampersand escape in SVG attributes. (#2608)
    • Fix CSS fill inherit for tspan.

    vega-schema

    • Add axis translate signal support to schema.
    • Add signal-valued axis orient to schema.

    vega-time

    • Internal breaking change: Remove formatting methods, which are now part of vega-format.

    vega-transforms

    • Update aggregation ops to no longer use the Function constructor.
    • Update dependencies.

    vega-typings

    • Add externalCanvas render option to typings.
    • Add axis translate signal support to typings.
    • Add signal-valued axis orient to typings.

    vega-util

    • Update field, key, and compare methods to no longer use the Function constructor.
    • Add optional arguments to inject optimized code generators for accessors and comparators.

    vega-view

    • Add locale input options and config handling.
    • Update to use refactored runtime context.

    vega-view-transforms

    • Add signal support for axis translate property.
    • Update reference to axis orient.
    • Fix ViewLayout reflow to ensure group bounds are updated. (#2568)
    • Fix grid layout calculations with empty grid input. (#2541)

    vega-wordcloud

    • Update dependencies.
    Source code(tar.gz)
    Source code(zip)
  • v5.11.1(Apr 27, 2020)

    Changes from v5.11.0:

    monorepo

    • Update dev dependencies.

    vega-hierarchy

    • Update tests for tape 5.0.

    vega-scenegraph

    • Use single quotes for generated aria-label captions. (Thanks @sprmn!)
    • Escape double quotes in SVG attributes, add test case.

    vega-statistics

    • Update tests for tape 5.0.

    vega-view-transforms

    • Update tests for tape 5.0.
    Source code(tar.gz)
    Source code(zip)
  • v5.11.0(Apr 27, 2020)

    Notable Additions

    • Preliminary support for ARIA accessibility attributes in SVG output. Mark and guide definitions now include automatically-generated roles and labels, which can be customized using description and aria properties. Individual mark items do not include ARIA attributes by default (which helps prevent bloat of both the scenegraph and output SVG), but these can be added using description and aria encoding channels.
    • Improve generated HTML form elements for signal bindings. Deployments that use custom CSS for styling bound elements may wish to make minor adjustments.
    • dayofyear time unit support for the timeunit transform.
    • dayofyear, week, utcdayofyear, and utcweek expression functions.
    • Axis domainCap, gridCap, and tickCap properties.

    Changelog

    Changes from v5.10.1:

    monorepo

    • Add ARIA attribute generation documentation.
    • Update eslint setup, consolidate configuration.
    • Update dev dependencies.

    vega

    • Add calendar test specification.
    • Add overview-detail-bins test spec to test suite.
    • Update crossfilter test scenes to include description property output.

    vega-encode

    • Move internal tick, label utilities to vega-scale.
    • Fix valid tick check calculation. (#2531)

    vega-functions

    • Add dayofyear, week, utcdayofyear, utcweek expression functions.

    vega-geo

    • Fix density utility size input checking bug.

    vega-parser

    • Add ARIA attribute generation for marks and guides via aria and description properties.
    • Add backing scale names to axis, legend datum objects.
    • Add zindex support for guide config.
    • Add axis domainCap, gridCap, and tickCap properties. (Thanks @kanitw!)

    vega-scale

    • Add tick, label guide utilities from vega-encode.
    • Add domainCaption utility.
    • Fix overflow with large domain and small tickMinStep (#2550, thanks @rwoollen!)

    vega-scenegraph

    • Add ARIA attribute generation to SVG renderers:
      • Parent <g> tags for mark items include automatic role and aria-roleDescription attributes.
      • Parent <g> tags for axes and legends include automatic aria-label captions.
      • Attribute generation for mark and guide definitions can be customized using the aria and description properties. If aria is false, the content is hidden from the accessibility tree by setting aria-hidden SVG attribute. The description property determines the aria-label SVG attribute.
      • Individual mark items do not include ARIA attributes by default, but these can be added using the encoding channels aria and description. If a description is provided and aria !== false, then Vega will generate accompanying role and aria-roledescription attributes for a mark item.
    • Provide experimental ariaRole and ariaRoleDescription encoding channels for individual marks, which override the default role and aria-roledescription attributes generated by Vega. However, note that these are experimental features and so may change at a later date.

    vega-schema

    • Add ARIA accessibility properties to mark, guide, and encode schemas.
    • Add axis domainCap, gridCap, and tickCap properties.

    vega-time

    • Add dayofyear time unit support and corresponding tests.
    • Add dayofyear, week, utcdayofyear, utcweek utility functions.
    • Add export for TIME_UNITS array of valid time unit strings.

    vega-transforms

    • Update TimeUnit transform parameter schema to enforce valid time unit strings.

    vega-typings

    • Add ARIA accessibility properties to mark, guide, and encode typings.
    • Add dayofyear option to TimeUnit transform typings.
    • Add zindex support for guide config.
    • Add axis domainCap, gridCap, and tickCap properties.

    vega-view

    • Improved semantic HTML for generated signal bindings to form input elements.
    Source code(tar.gz)
    Source code(zip)
  • v5.10.1(Mar 30, 2020)

    Changes from v5.10.0:

    vega-encode

    • Update default guide label format to support multi-line arrays. (#2456)

    vega-loader

    • Use startsWith rather than indexOf for string prefix checks.

    vega-parser

    • Use startsWith rather than indexOf for string prefix checks.
    • Set default fill and size for trail mark config.

    vega-transforms

    • Fix window operator init state for prev_value and next_value. (#2475.)

    vega-typings

    • Update mark config for arc mark.

    vega-view-transforms

    • Fix Overlap transform to early exit when there are no items (#2449).
    Source code(tar.gz)
    Source code(zip)
  • v5.10.0(Mar 6, 2020)

    Notable Additions

    • The Vega parser now generates a built-in background signal which the view uses to set the background color. While not technically a breaking change (specs will still parse and evaluate successfully), existing specs that use a signal named "background" may not render the same as before, in which case a different signal name should be used.
    • Top-level properties (autosize, background, padding, width, height) accept signal references, such as {"signal": "<expr>"}, which map to a signal definition's update property. If the top-level signals array contains an entry that matches one of these properties, the definitions will be merged, with precedence given to the properties defined in the signals array.
    • Vega views now include ARIA attributes on the view container DOM element. The role attribute is set to "figure", and the aria-label attribute is set to the specification description property.
    • The aggregate and window transforms support the product operation to multiply values.
    • The config supports a top-level lineBreak option for setting a global default for text line breaks. This property should be a string or regexp value, or a corresponding signal reference.
    • Support for text baseline values line-top and line-bottom. These values are similar to top and bottom baselines, but calculated relative to the lineHeight rather than fontSize alone.
    • Support for color blend modes via the new blend encoding channel. The allowed values are: multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity. For Canvas rendering, the blend is set via the context 2D globalCompositeOperation property. For SVG rendering, the blend is set via the CSS mix-blend-mode style. The default Vega value is null (or undefined), which maps to the default values "source-over" (for Canvas) and "normal" (for SVG). For more, see the Canvas globalCompositeOperation and CSS mix-blend-mode documentation, including limitations in cross-browser support.
    • Support for configuration of cross-origin image handling. Vega uses crossOrigin="anonymous" by default for loaded images, which allows images loaded from a different host to be included in exported visualization images (and thereby avoid "tainted canvas errors"), so long as the server provides permission via proper CORS headers. This default can be overridden by providing loader options to the Vega view that include a crossOrigin property. If this property is defined and maps to a value of null or undefined, then a no-cors fetch will be performed instead.
    • Add axis labelOffset property to adjust axis label position in addition to tickOffset, and labelLineHeight to set the line height for multi-line axis labels.

    Changelog

    Changes from v5.9.2:

    docs

    • Add description entries to all specifications in the example gallery.
    • Update documentation for all new features.

    vega

    • Update test specifications to avoid use of signals named "background".

    vega-loader

    • Add crossOrigin URI sanitization configuration for images. (#2238)

    vega-parser

    • Add built-in background signal to drive view background.
    • Add support for top-level properties to take signal-values.
    • Add application of lineBreak config option to text marks. (#2370)
    • Add axis labelOffset property. (thanks @kanitw! #2317)
    • Add axis labelLineHeight property. (thanks @kanitw! #2437)
    • Add description support to parser output and config.

    vega-scenegraph

    • Add crossOrigin image handling support. (#2238)
    • Add blend encoding channel support. (#2311)
    • Add line-top, line-bottom text baseline options. (#2395)
    • Add text trimming to ensure consistent output. (#2418)
    • Fix linear gradient to use normalized bounding box coordinates. (#2365)
    • Fix canvas damage/redraw: Align to base pixel grid in case of non-integer scaling. (#2425)

    vega-schema

    • Add blend encoding to schema.
    • Add line-top, line-bottom text baseline options. (#2395)
    • Add top-level signal-valued properties to schema.
    • Add axis labelOffset and labelLineHeight properties to schema.

    vega-transforms

    • Add product aggregate operation. (#2307)

    vega-typings

    • Add blend encoding to typings.
    • Add line-top, line-bottom text baseline options. (#2395)
    • Add top-level signal-valued properties to typings.
    • Add lineBreak config typing. (#2370)
    • Add axis labelOffset and labelLineHeight typings.

    vega-util

    • Fix prototype pollution vulnerability.

    vega-view

    • Add ARIA attributes and View description method.
    • Use background signal to control the view background color.
    • Update padding method to handle numeric values.

    vega-view-transforms

    • Fix axis title layout bounds to avoid improper padding offset. (#2368)
    • Fix view layout resize code to avoid invocation of padding until needed.
    Source code(tar.gz)
    Source code(zip)
  • v5.9.2(Feb 28, 2020)

    Changes from v5.9.1:

    docs

    • Add clock, watch, and pacman examples. (Thanks @mathiastiberghien and @domoritz!)

    monorepo

    • Update dev dependencies.

    vega

    • Allow patch updates for Vega packages.
    • Add images-inline test specification.

    vega-loader

    • Fix URI sanitization to accept data: prefix URIs. (#2407)

    vega-parser

    • Fix legend columns value handling. (#2268)

    vega-scenegraph

    • Add memoization to speed up text width measurements. (Thanks @domoritz!)

    vega-schema

    • Fix date-type transform parameter support.

    vega-statistics

    • Fix exponential regression robustness, mean-center x-values. (#2378)

    vega-transforms

    • Fix TimeUnit maxbins, extent parameter support. (Thanks @haldenl!)

    vega-typings

    • Fix missing zindex mark encoding typing. (#2341)
    • Update typings. (Thanks @danmarshall, @domoritz, @kanitw!)

    vega-util

    • Add lruCache data structure, tests, and documentation.
    Source code(tar.gz)
    Source code(zip)
  • v5.9.1(Jan 14, 2020)

    Changes from v5.9.0:

    vega

    • Fix rollup script to resolve symlinks.

    vega-encode

    • Fix log scale legend values and format. (#2290)

    vega-projection-extended

    • Fix rollup script to resolve symlinks.

    vega-regression

    • Update vega-statistics dependency.

    vega-statistics

    • Fix r-squared calculation for poly and quad regression. (Thanks @jakevdp!)

    vega-time

    • Fix time floor step bug, add tests. (#2270)

    vega-util

    • Fix splitAccessPath escape handling, add tests. (#2287)
    Source code(tar.gz)
    Source code(zip)
  • v5.9.0(Dec 5, 2019)

    Notable Additions:

    • New Annual Precipitation example.
    • Signal bindings for select and radio input now support a labels array.
    • Group mark strokeOffset and strokeForeground properties to control rectangle rendering.
    • The default set of map projections now includes the mollweide projection.
    • Improved numerical robustness for regression methods.
    • Support translate and scale transformations in the isocontour transform.
    • Support for fully asynchronous data loading, via data async flag.
    • Support for adding new scale implementations at runtime.

    Changes from v5.8.1:

    docs

    vega

    • Add ES5 build support via Babel. (thanks @nyurik!)
    • Add isocontour-precipitation test specification. (thanks @mattijn!)
    • Update dynamic-url test specification to include async.
    • Update test scenegraphs in response to scale updates.

    vega-dataflow

    • Add asynchronous operator execution support.

    vega-encode

    • Fix legend item lookup bug.
    • Add spacing to legend range labels.

    vega-event-selector

    • Add initial TypeScript typings.

    vega-expression

    • Add initial TypeScript typings.

    vega-geo

    • Add isocontour scale and translate support. (#2163)

    vega-parser

    • Add async data loading property.

    vega-projection

    • Add mollweide projection to default set.
    • Update dependencies.

    vega-projection-extended

    • Add hyperElliptical, interruptedQuarticAuthalic, nicolosi projections.
    • Drop naturalEarth1, mollweide projections (move to vega-projection defaults).

    vega-scale

    • Refactor scale and metadata registration. (thanks @bmatcuk!)
    • Add initial TypeScript typings.
    • Update dependencies.

    vega-scenegraph

    • Add group mark strokeOffset property. (#2186)
    • Add group mark strokeForeground property. (#2197)
    • Fix group offset adjustment to interpolate smoothly.
    • Fix SVG renderer clip maintenance bug. (thanks @donghaoren!)
    • Fix boundContext to calculate tight bounds for Bezier curves.
    • Fix canvas renderer group gradient offset bug.

    vega-schema

    • Add signal bind labels to schema.
    • Add isocontour transform translate parameter to schema.
    • Add async data property to schema.
    • Add group mark strokeOffset to schema.

    vega-statistics

    • Fix regression methods for numerical stability.
    • Fix regression number coercion.

    vega-transforms

    • Add Load transform async parameter.
    • Fix to use infinite bin values outside extent bounds. (#2227)
    • Fix bin stop boundary error. (#2181)

    vega-typings

    • Add signal bind labels typings.
    • Add isocontour transform translate parameter typings.
    • Add async data property typing.
    • Add group mark strokeOffset typings.
    • Update config object typings.

    vega-util

    • Fix infinite loop bug in extent. (#2177, thanks @tuner!)
    • Fix null result case output for extentIndex.
    • Add tests for extent and extentIndex.

    vega-view

    • Add labels property for radio/select bindings.

    vega-wordcloud

    • Fix fontSize flooring to handle floating point error.
    Source code(tar.gz)
    Source code(zip)
  • v5.8.1(Nov 18, 2019)

Owner
Vega
Data Visualization Languages & Tools
Vega
A visualization grammar. Moved to: https://github.com/vega/vega

Vega: A Visualization Grammar Vega is a visualization grammar, a declarative format for creating and saving interactive visualization designs. With Ve

Trifacta Inc. 29 Sep 24, 2022
An open-source visualization library specialized for authoring charts that facilitate data storytelling with a high-level action-driven grammar.

Narrative Chart Introduction Narrative Chart is an open-source visualization library specialized for authoring charts that facilitate data storytellin

Narrative Chart 45 Nov 2, 2022
Apache ECharts is a powerful, interactive charting and data visualization library for browser

Apache ECharts Apache ECharts is a free, powerful charting and visualization library offering an easy way of adding intuitive, interactive, and highly

The Apache Software Foundation 53.4k Nov 25, 2022
Data Visualization Components

react-vis | Demos | Docs A COMPOSABLE VISUALIZATION SYSTEM Overview A collection of react components to render common data visualization charts, such

Uber Open Source 8.4k Nov 17, 2022
Cubism.js: A JavaScript library for time series visualization.

Cubism.js Cubism.js is a D3 plugin for visualizing time series. Use Cubism to construct better realtime dashboards, pulling data from Graphite, Cube a

Square 4.9k Nov 27, 2022
A general purpose, real-time visualization library.

Epoch By Ryan Sandor Richards Epoch is a general purpose charting library for application developers and visualization designers. It focuses on two di

Epoch 5k Nov 17, 2022
A port of the Processing visualization language to JavaScript.

โš ๏ธ This project has been archived โš ๏ธ With the development of p5js and the API advances in Processing itself, as well as Processing.js itself having be

Processing.js 3.1k Nov 19, 2022
a graph visualization library using web workers and jQuery

arbor.js -------- Arbor is a graph visualization library built with web workers and jQuery. Rather than trying to be an all-encompassing framework, a

Christian Swinehart 2.6k Nov 12, 2022
Dynamic HTML5 visualization

Envision.js Fast interactive HTML5 charts. http://groups.google.com/group/envisionjs/ Features Modern Browsers, IE 6+ Mobile / Touch Support Pre-built

HumbleSoftware 1.6k Nov 21, 2022
vizflow is an ES6 interactive visualization engine

Vizflow vizflow.js - a render-loop library written using EcmaScript.6 (ES6) with no other external dependencies. Vizflow is a relatively small library

Vizflow 332 Oct 27, 2022
Data visualization library for depicting quantities as animated liquid blobs

liquidity.js A data visualization library for depicting quantities as animated liquid blobs. For a demonstration of what the final product can look li

N Halloran 91 Sep 20, 2022
Powerful data visualization library based on G2 and React.

BizCharts New charting and visualization library has been released: http://bizcharts.net/products/bizCharts. More details about BizCharts Features Rea

Alibaba 6k Nov 19, 2022
๐Ÿž๐Ÿ“Š Beautiful chart for data visualization.

?? ?? Spread your data on TOAST UI Chart. TOAST UI Chart is Beautiful Statistical Data Visualization library. ?? Packages The functionality of TOAST U

NHN 5.2k Nov 22, 2022
A data visualization framework combining React & D3

Semiotic is a data visualization framework combining React & D3 Interactive Documentation API Docs on the wiki Examples Installation npm i semiotic E

nteract 2.3k Nov 26, 2022
๐ŸŒ A Declarative 3D Globe Data Visualization Library built with Three.js

Gio.js English | ไธญๆ–‡ React Version: react-giojs Wechat minigame: wechat usage Gio.js is an open source library for web 3D globe data visualization buil

syt123450 1.6k Nov 25, 2022
A React toolkit for graph visualization based on G6

Graphin A React toolkit for graph analysis based on G6 English | ็ฎ€ไฝ“ไธญๆ–‡ โœจ Features ?? Good-looking elements, standardized style configuration Graphin st

AntV team 811 Nov 22, 2022
๐Ÿ“Š Data visualization library for React based on D3

Data visualization library for React based on D3js REAVIZ is a modular chart component library that leverages React natively for rendering the compone

REAVIZ 729 Nov 17, 2022
A library for visualization and creative-coding

Pts Pts is a typescript/javascript library for visualization and creative-coding. Get started at ptsjs.org. Please give it a try, file issues, and sen

William Ngan 4.9k Nov 17, 2022
Location Intelligence & Data Visualization tool

What is CARTO? CARTO is an open, powerful, and intuitive platform for discovering and predicting the key insights underlying the location data in our

CARTO 2.6k Nov 17, 2022