Skip to content

@jheer jheer released this May 10, 2019 · 28 commits to master since this release

Highlights of new additions in v5.4.0:

  • Add statistical regression, loess, and kde transforms, with groupby support.
  • Add gradients (linear and radial) for use as fill or stroke colors.
  • Add prev_value, next_value fill operation for the window transform.
  • Add legendX and legendY properties to position legends with orient "none".
  • Add isDefined and isValid expression functions.
  • Add filter option for TopoJSON mesh extraction.
  • Add support for expr-valued sort fields.
  • Improve encoding update efficiency.

Changes from v5.3.5:

vega

  • Update test specifications.

vega-encode

  • Add mod parameter to Encode transform to control inclusion of mod tuples that are not updated by the encoders.

vega-functions

  • Add isDefined and isValid expression functions.

vega-geo

  • Add nomod metadata flag to GeoShape transform.
  • Add null value filter when marshaling GeoJSON data for projection fit.
  • Add test case for null GeoJSON values.

vega-loader

  • Add filter property to TopoJSON format.
  • Add test cases for TopoJSON format filter.

vega-parser

  • Add value update checks to generated encoder functions, add only updated items to the mod set. Results in more efficient re-rendering when only a subset of items have encoded values modified. If a mark includes a post-encoding transform that lacks a nomod metadata flag, disable mod set filtering by the encoder to ensure proper pulse propagation.
  • Add support for expr-valued sort fields.
  • Add legendX / legendY properties to legend parser.

vega-regression

  • Create regression package, add regression and loess transforms.

vega-scenegraph

  • Update gradient handling to add id and default values, as needed.
  • Add radial gradient support, via pattern wrapping.
  • Update scenegraph JSON schema.

vega-schema

  • Add usermeta support for all scopes, not just the top-level.
  • Add expr-valued sort fields to schema.
  • Add DSV/CSV/TSV header property to schema.
  • Add filter property to TopoJSON format schema.
  • Add legendX / legendY properties to legend schema.
  • Add explicit linear and radial gradient color values to schema.
  • Add new transforms to schema.

vega-statistics

  • Add regression methods, adapting @HarryStevens' d3-regression work. (Thanks!)
  • Add sampleCurve method for adaptive subdivision of interpolated curves.
  • Update number coercion and valid value filtering.
  • Document new methods in README.md.

vega-transforms

  • Add KDE transform and tests.
  • Add prev_value, next_value window operations.
  • Add minsteps and maxsteps parameters to Density transform.
  • Minor updates to Compare transform.

vega-typings

  • Add expr-valued sort fields to typings.
  • Add DSV/CSV/TSV header property to typings. Refactor DSV typings.
  • Add filter property to TopoJSON format typings.
  • Add legendX/legendY properties to legend typings.
  • Add explicit linear and radial gradient color values to typings.
  • Add KDE, Loess, and Regression transforms to typings.
  • Add prev_value, next_value window operations to typings.

monorepo

  • Update dev dependencies.
Assets 2

@jheer jheer released this Apr 6, 2019 · 81 commits to master since this release

Changes from v5.3.4:

vega-geo

  • Fix Projection GeoJSON marshal. Add tests. (#1752)

vega-view-transforms

  • Fix mark bounds for removed label overlaps. Add tests. (#1747)

vega-util

Assets 2

@jheer jheer released this Mar 31, 2019 · 90 commits to master since this release

Changes from v5.3.3:

vega-transforms

  • Fix bin boundary floating point errors. (#1737)
Assets 2

@jheer jheer released this Mar 31, 2019 · 95 commits to master since this release

Changes from v5.3.2:

monorepo:

  • Update all dev dependencies.

vega-encode:

  • Add number coercion to stack transform.
Assets 2

@jheer jheer released this Mar 25, 2019 · 105 commits to master since this release

Changes from v5.3.1:

vega-encode

  • Fix axis tick index denominator. (#1719)

vega-parser

  • Fix config merge logic. (#1723)

vega-wordcloud

  • Fix wordcloud zero-size check. (#1464)
Assets 2

@jheer jheer released this Mar 20, 2019 · 113 commits to master since this release

Changes from v5.3.0:

vega-parser

  • Fix overwrite of input spec stream filter. (#1702)

vega-scale

  • Update dependencies.

vega-statistics

vega-transforms

  • Update dependencies.

vega-typings

Assets 2

@jheer jheer released this Mar 15, 2019 · 125 commits to master since this release

Changes from v5.2.0:

vega

  • Add scatter-brush-filter and scatter-brush-panzoom test specifications.

vega-dataflow

  • Streamline signal event handler code.

vega-expression

  • Add join, reverse, and trim expression functions. (#1414, #1687).

vega-view

  • Fix View event extension logic.
Assets 2

@jheer jheer released this Mar 10, 2019 · 141 commits to master since this release

Changes from v5.1.0:

vega

  • Add font-size-steps test specification.

vega-cli

  • Add log level (-l) parameter. (#1677)
  • Add custom logger for stderr only.

vega-dataflow

  • Add Dataflow logger getter/setter.
  • Fix topological sort (rank) for signal listener operators. (#1672)

vega-functions

  • Safeguard scale function, return undefined for undefined input.

vega-parser

  • Add dx, dy properties for title guides.
  • Fix double invocation by merging signal/scale event streams. (#1672)
  • Fix scale parser to allow array-valued range entries.

vega-schema

  • Add dx, dy properties for title guides.
  • Fix schema to allow array-valued range entries.

vega-typings

  • Add dx, dy properties for title guides.
  • Update typings to follow vega-util additions.
  • Fix typings for scaled encode entries.

vega-util

  • Add method argument to logger.

vega-view

  • Add View constructor option to set the logger.
  • Prevent event extension if no active renderer.
Assets 2

@jheer jheer released this Mar 8, 2019 · 160 commits to master since this release

Vega v5.1.0

Notable Additions:

  • Add formatType property (one of "number" or "time") for axes and legends. If the underlying scale has a tickFormat method, that will be used regardless of formatType. Otherwise, formatType controls whether or not number or date-time format specifiers are expected.

Detailed Changes:

docs

  • Document formatType property for axes and legends.

vega-dataflow

  • Update internal heap implementation to simplify code.
  • Fix dataflow evaluation to ensure no async interleaving of runAfter callbacks.

vega-encode

  • Add formatType parameter for axis ticks and legend entries.

vega-parser

  • Add formatType parameter for axes and legends. (#1673)

vega-schema

  • Update to include formatType property.
  • Update to include top-level style property.

vega-typings

  • Update to include top-level style property.
  • Update to include signal init property.
Assets 2

@jheer jheer released this Mar 5, 2019 · 176 commits to master since this release

Vega v5.0.0

Notable Additions:

  • The Vega project and sub-module dependencies have been reorganized into a single monorepo (vega/vega) to streamline development.
  • The symbol mark type now support an angle channel for rotation, and new shape types (wedge, arrow).
  • Axes and legends support a new range of layout customizations, including title positioning properties (titleOrient, titleAnchor) and legend layout configuration (config.legend.layout).
  • Thanks to extensions in d3-scale, Vega now includes a symmetric log (symlog) scale type.
  • Vega now supports color interpolation not just for linear scales, but for all continuous scales. Internally, Vega will select among standard linear, sequential, or diverging scale implementations based on scale domain and range. A similar logic applies for log, pow, sqrt, and symlog scales. In addition, the scale interpolate property can now be used with any scale that supports a scheme-valued range, allowing customized color interpolation for continuous, ordinal, or discretizing scales when passing an array of color values to the scheme property.
  • The sequential scale type has been deprecated, but remains for backwards-compatilibility. Use the linear scale type instead.
  • The Vega dataflow now supports asynchronous evaluation. Internal dataflow operators can return a Promise; dataflow evaluation will then pause and resume when the Promise resolves. This enables exciting new capabilities such as dynamic loading from external data sources. The View API run method works much as before, but internally invokes asynchronous processing and returns immediately. We recommend using view.runAsync whenever possible; invoke then on (or await) the returned Promise to perform actions once dataflow evaluation completes.
  • Starting with v4.4, Vega started using more ES6+ constructs directly and dropped Internet Explorer support (in part due to changes in underlying d3 libraries). This trend has continued in the v5 release, most notably including Vega's use of async functions and the await keyword. Some users migrating to Vega 5.0 from an earlier version may discover incompatibilities with older browsers. If backwards compatibility is essential, we recommend using a transpiler framework such as Babel.

Breaking Specification Changes:

  • The legend strokeWidth property now accepts a scale that maps data values to stroke widths. It no longer corresponds to the stroke width of the legend border. However, the legend.strokeWidth config property still corresponds to the legend border thickness.
  • Continuous color schemes no longer support discrete variants as part of the scheme name. Scheme names such as blues-7 are no longer supported; instead use {"scheme": "blues", "count": 7}.
  • The bin-linear scale type has been removed. Instead, use a linear scale that uses the new bins parameter.
  • Remove deprecated Vega-Lite selection expression functions vlSingle, vlSingleDomain, vlMulti, vlMultiDomain, vlInterval, and vlIntervalDomain.
  • As a consequence of the two changes above, versions of Vega-Lite prior to v3 will not work with Vega v5. Please adjust your versions accordingly.

Breaking API Changes:

  • The vega-lib package has been removed; use vega directly instead. The vega package no longer includes an optional node-canvas dependency. If you want to use Vega in server-side projects, your project should include an explicit node-canvas dependency.
  • The vega package no longer directly provides command line utilities; use the new vega-cli package instead, which includes a node-canvas dependency. The vega-cli package includes a new vg2pdf command for rendering PDF output!
  • The vega package no longer exports TypeScript typings for the vega-lib module; use the vega module instead.
  • The runtime and internal APIs have other breaking changes, though most Vega users will not be affected. See the full change log below for more.

Detailed Changes:

docs

  • Update documentation to reflect JSON schema and API updates.
  • Update colors in volcano example.
  • Update edge bundling examples to use "stroke" symbol type.
  • Update miscellaneous examples to use more recent features.
  • Add wind vectors example. (Thanks @jwoLondon!)

vega

  • Add test specifications and scenes for dynamic data loading.
  • Add test specification and scene for symbol angle.
  • Add JSON schema validation test.
  • Update test specifications to use linear rather than sequential scale type.
  • Update flush-axis-labels and legend-continuous test specifications to use labelSeparation.
  • Update layout-splom test specification to include legendAnchor.
  • Update legends test specification to include layout options.
  • Update scatter-plot test specification to test legend configurations.
  • Update tests to use randomLCG utility from vega-statistics.
  • Update test runners to use new View constructor options.
  • Update rendered scenegraphs for test specifications.
  • Update exports to use vega-functions package.
  • Drop vega-lib module for typings.
  • Drop tv4, use ajv for validation.
  • Drop d3-scale-chromatic dependency.

vega-cli

  • Create new package for Vega command-line utilities.
  • Add vg2pdf command for generating PDF output.
  • Add format and timeFormat options to command line utilities. (#1667)
  • Update to use randomLCG utility from vega-statistics.
  • Update to use new View constructor options.

vega-dataflow

  • Breaking: Decouple dataflow request from pending load tracker.
  • Add dataflow preload method for initial data loading.
  • Add async evaluation support. Transform operators can now return a Promise that resolves to a Pulse.
  • Add support for async callback functions within dataflow evaluation.
  • Add passing of responseType from format to loader options.
  • Update data loading and dataflow methods to use async/await.
  • Update runtime, move evaluation logic to internal evaluate method.
  • Update run and runAsync to accept optional prerun and postrun callbacks.
  • Add async evaluation tests.

vega-encode

  • Breaking: Remove bin-linear scale support. Use new bins parameter instead.
  • Breaking: Remove utcInterval method. Use updated timeInterval method instead.
  • Add automatic scale selection for linear, log, pow, sqrt, symlog types. If a color range is specified, sequential or diverging scale implementations will be used depending on the domain length.
  • Add interpolated color array input to scheme property. (Fix #995)
  • Add color interpolate support for all scheme-compatible scales.
  • Add support for bins property to guide tick/legend generation.
  • Add minstep parameter to AxisTicks and LegendEntries transforms.
  • Add bin boundary generation from bins parameter object.
  • Add domain specification using bins property for BinOrdinal scales.
  • Update legend label formats for discrete color gradients.
  • Update unit tests to work with async evaluation.
  • Move interpolation utilities to vega-scale.
  • Drop logic for discretized scale lookup.
  • Drop BinOrdinal special case for legend label generation, use bins instead.

vega-expression

  • Add exports for AST node type constants.
  • Update README.md to clarify the constants and functions provided. (#1556)

vega-functions

  • Create new package for Vega-specific expression functions and code generation.
  • Add panSymlog and zoomSymlog expression functions.
  • Add lerp expression function.
  • Add intersect expression function. This function is not yet part of the official expression language, but is exposed for integration and testing with Vega-Lite. The intersect function has the signature intersect(box, options, group), where:
    • box is a rectangular brush region defined as [[x1, y1], [x2, y2]]
    • options is an optional object with marktype or markname properties (strings or arrays) for limiting the intersection tests to specific marks.
    • group is an optional scenegraph group item that serves as the root of the search. If not provided, the full scenegraph is used.
  • Update README.md to clarify the functions provided. (#1556)
  • Fix gradient function to handle zero span domains, add test cases. (#1479)

vega-loader

  • Add response option to direct fetch response processing.
  • Add responseType property to format read methods.
  • Update loader to use async / await.
  • Update sanitize method to copy rel loader option to the output result. The scenegraph handler will copy this over as an HTML rel attribute of a generated a element. (#1542)

vega-parser

  • Breaking: Add strokeWidth scale support for legends, remove legend strokeWidth property. Similar to strokeDash, the config-level strokeWidth property is still supported. However, the spec-level property now refers to an input scale, not the legend group boundary.
  • Breaking Move expression functions and code generation to vega-functions package.
  • Breaking: Update data parser to include load transform for dynamic data directly within generated transform pipelines.
  • Add fontStyle property for chart titles.
  • Add labelFontStyle property for axes and legends.
  • Add titleFontStyle property for axes and legends.
  • Add labelSeparation property for axes and legends. (#1507)
  • Add tickMinStep to axis and legend parsers.
  • Add titleOrient property to configure legend title positioning.
    • Legal values: "top" (default), "bottom", "left", "right"
  • Add titleAnchor property to configure axis and legend title alignment.
    • Legal values: "start", "middle", "end", null (default)
  • Add more stroke dash options for axes and legends.
    • Axes: domainDash, domainDashOffset, gridDashOffset, tickDash, tickDashOffset
    • Legends: symbolDash, symbolDashOffset
  • Add legend layout config options.
  • Update to allow signal values for legend orient. (#1665)
  • Update to allow signal values for title orient.
  • Update config to use adjusted color scales.
  • Update config to set default legend titleOrient to "top".
  • Update legend and scale parsers to use scale type predicates.
  • Update internal API for more concise, readable spec/config property lookups.
  • Update config file merging logic.
  • Update tests.
  • Fix axis titleX / titleY auto-layout bug.
  • Fix legend clipHeight bounds flag bug.
  • Drop unneeded title guide layout logic.

vega-runtime

  • Breaking: Remove runtime context support for dynamic loading. Instead, the dataflow now supports this directly.
  • Breaking: Use dataflow preload for initial dataset loading.

vega-selections

  • Create new package for Vega-Lite selection functions.

vega-scale

  • Breaking: Remove bin-linear scale type.
  • Breaking: Remove discrete schemes for continuous data.
    • The schemeDiscretized method has been removed. For interpolating schemes, we now always generate discrete schemes via quantization.
    • Scheme names such as blues-7 are no longer supported; instead use {"scheme": "blues", "count": 7}.
  • Add symlog scale type.
  • Add transformed sequential and diverging scale implementations.
  • Add scale type constants and predicate methods.
  • Add interpolation utilities: interpolateColors, quantizeInterpolator
  • Add new color schemes:
    • Single-hue: browns, tealblues, teals, warmgreys
    • Multi-hue: goldgreen, goldorange, goldred
    • Density for dark backgrounds: darkblue, darkgold, darkgreen, darkmulti, darkred
    • Density for light backgrounds: lightgreyred, lightgreyteal, lightmulti, lightorange, lighttealblue
  • Adjust existing color schemes to avoid extreme light / dark colors.
  • Export tickFormat method.
  • Upgrade to d3-scale 2.2+. (Fix #1536)
  • Drop d3-scale-chromatic dependency.

vega-scenegraph

  • Add support for symbol mark angle encoding. (#1557)
  • Add new built-in symbol types: arrow, triangle, wedge, stroke
  • Add intersection hit testing between marks and a rectangular brush.
  • Add equals and rotatedPoints method to Bounds.
  • Add missing scenegraph item properties to vega-scenegraph schema.
  • Add JSON schema validation test.
  • Update text mark bounds calc to avoid unnecessary expand.
  • Update schema to use JSON schema draft 6.
  • Update to use uri-reference, not uri, for image mark url.
  • Fix picking calculation for text marks.
  • Drop tv4, use ajv for validation.

vega-schema

  • Breaking: Update schema with strokeWidth scale support for legends, remove legend strokeWidth property.
  • Update schema to use JSON schema draft 6.
  • Update schema to include new supported features.
  • Update schema to support signal values in dataset definitions.
  • Update schema to reflect additions and removals.
  • Update code comments to reflect angle encoding availability.
  • Update code to use internal JSON schema API.
  • Fix gradient value definition to include additional parameters.
  • Fix missing strokeWidth entry in valid legend schema definition.

vega-statistics

  • Add randomLCG utility for seeded random number generation.

vega-transforms

  • Breaking: Update load transform to use async evaluation.
  • Update load transform to support explicit values as well as url.
  • Update unit tests to work with async evaluation.

vega-typings

  • Update typings to include all schema updates.

vega-util

  • Add panSymlog and zoomSymlog methods.
  • Add clampRange, extent, flush, inrange, lerp, and span array methods.
  • Add quarter and utcquarter Date methods.
  • Update documentation and typings.

vega-view

  • Breaking: The View API render method has been removed. As before, (re-)rendering is automatically invoked when the dataflow is evaluated.
  • Add more View constructor options.
  • Update View API to override Dataflow.evaluate instead of run.
  • Update headless rendering methods to use async / await.
  • Update internal event handlers to use runAsync to queue handler invocation.
  • Update View to track signal bind element. Pass bound element as an initialize parameter when the renderer is reset. (#1575)
  • Drop vega-parser depencency, use vega-functions instead.

vega-view-transforms

  • Add configurable legend layout.
  • Add anchor positioning support to grid layout.
  • Add titleAnchor property to trellis layout. (#1664)
  • Update ViewLayout to support legend titleOrient and titleAnchor.
  • Update ViewLayout legend bounds calculation.
  • Update ViewLayout to support signal values for legend orient.
  • Update Overlap transform to pre-filter all labels with null bounds.
  • Update Overlap transform to support separation parameter. (#1507)
  • Refactor layout code organization.
Assets 2
You can’t perform that action at this time.