Skip to content

Releases: vega/vega-lite

v0.9.0

04 Dec 20:51
Compare
Choose a tag to compare

We refactored a number of syntax decisions in this PR as we are moving closer to 1.0. Please read carefully to make sure that you migrate correctly.

Main APIs

  • vl.compile's signature has changed
    • It no longer requires stats
    • It returns an object with property spec contains the vega spec. (We will add warning / errors as additional properties in the future.)

Syntax

  • CORE SYNTAX CHANGES
    • Rename marktype to mark
    • Rename name to field in each field definition
    • Rename col to column for clarity
    • Replace short name type with full name type by default e.g., Q => quantitative, O => ordinal, T => temporal, N=> nominal. But short name types are still supported and the type property is now case insensitive.
  • Added vega's scale, axis, and legend properties that should be supported #181
  • Added scale property to row, column and shape
  • rename / refactor
    • axis.maxLabelLength => axis.labelMaxLength
    • scale.bandSize => scale.bandWidth
    • Move encDef.band to be a part of scale
      • band.size => scale.bandWidth
      • band.padding => scale.padding
  • revise useRawDomain to support only aggregate functions that produces values ranging in the domain of the source data ('mean', 'average', 'stdev', 'stdevp', 'median', 'q1', 'q3', 'min', 'max’)
  • revised config
    • remove unused config.gridColor, config.gridOpacity
    • remove config.bandWidth, config.padding and config.useRawDomain as it is redundant with scale.bandWidth and scale.padding, scale.useRawDomain in field definitions
      • set default values of scale.bandWidth, scale.padding just for X, Y
    • group configs of a particular element together
      • config.cell
        • move cell configs to be under cell: width, height, padding, gridColor, gridOpacity, gridOffset
          • remove config.singleWidth, config.singleHeight, encoding.column.width, encoding.row.height and simply always use value from cell.width, cell.height
        • add the following group marks properties to config.cell: fill, fillOpacity, stroke, strokeWidth, strokeOpacity, strokeDash, strokeDashOffset`
        • added missing properties
      • config.marks
        • move baseline, font, fontStyle, fontWeight from encoding.text to config.marks
        • encoding.shape.filled => config.marks.filled
        • encoding.color.opacity => config.marks.opacity
        • move all text properties from encoding.text to config.marks except renaming encoding.text.placeholder to encoding.text.value
        • config.strokeWidth => config.marks.strokeWidth
        • added missing properties

Output

  • data
    • rename Vega’s data tables: raw => source and aggregate => summary
    • added layout table for layout calculation and add root marks group for binding layout data
  • output now describe properties in update rather than enter
  • only produces scales, axes, legends when they are non-empty
  • removed axis grid for row and column and added rule marks (row|column-rules) instead for drawing rules/grid between rows / columns
  • {field: {group: 'width|height'}} are used where necessary
  • removed scales for timeUnit and used template instead
  • revised default values
    • scale's nice, points and zero
    • set axis's layer: 'back' only if grid is true - fixes #526
    • complex rules for determining opacity and color scales removed.
    • stack's default order is revised
    • simplified rules for automatic opacity

Helper APIs

  • move requiredEncodings and supportedEncodings to vl.validate
  • add vl.validate.getEncodingMappingError() -- this is subject to change.
  • Include Vega-Lite version in the compiled files. (vl.version)
  • add encoding.padding() helper
  • Add separate methods for properties in scale, axis, and legend
  • rename
    • vl.encDef => vl.fieldDef
    • vl.enc => vl.encoding
    • vl.Encoding => vl.spec for static methods
    • vl.Encoding => vl.compiler.model for internal model for the compiler
    • scale.sort() => scale.domain.sort()
    • vl.schema.encTypes => vl.const.Enctype.LIST
    • general utility methods are now moved to vl.util
  • Add namespaces for helpers and constants vl.type, vl.channel, vl.bin, vl.aggregate, vl.timeunit
  • move shorthand methods to vl.shorthand
  • fixed bug when having array in the schema for schemautil.subtract

Internal

  • Migrated to Typescript & add interfaces for all type
  • Break schema into multiple files
  • Vega-Lite editor removed, as Vega Editor now supports Vega-Lite

v0.8.3

24 Oct 05:18
Compare
Choose a tag to compare
  • Change default value for axis.grid for binned field to false
  • Reimplement bin's scale using linear scale instead (#693)
  • Fix missing value problem in stacked area chart using the new Vega's impute transform
  • Remove sort transform from output stacked area chart spec as stack transform already included sortby

v0.8.2

22 Oct 23:02
Compare
Choose a tag to compare
  • Make encoding definition sort=‘ascending’ by default

Change Vega Output

  • No longer add ’-‘ to sortby in the output stack transform by default
  • Change bin transform to produce start instead of bin to reflect the Vega 2.3.0's syntax change.

v0.8.1

18 Oct 20:40
Compare
Choose a tag to compare
  • schema file is now vega-lite-schema.json rather than spec.json
  • axis.grid is automatically determined. If grid is unspecified, the default value is true for ROW and COL. For X
    and Y, the default value is true for quantitative fields and false
    otherwise.

v0.8.0 – Migrating to Vega 2

18 Oct 18:41
Compare
Choose a tag to compare

Syntax Change

  • axis
    • only include axis.orient when necessary
  • legends
    • set legend's orient to right by default (similar to Vega)
    • Vega-lite now supports multiple legends
  • filter
    • move filter to data.filter and takes Vega expression as parameter instead of a complicated predicate object.
    • Null filter is added before binning and timeUnit conversion
  • scale
    • scale.reverse is removed as it is redundant with sort.
  • stack
    • add stack control to color and detail encoding
  • sort — now sort property can be either undefined, a String or an Object
    • undefined - the field is unsorted.
    • (as String) 'ascending' or 'descending' – the field is sort by the field's value in ascending or descending order.
    • (as Object — for ordinal/nominal fields only) A sort field object - for sorting the field by an aggregate calculation (sort.op) over a specified sort field (sort.field) in a specified order (sort.order)

Vega 2 Migration Refactor

  • ValueRef
    • replace d.data with datum in filter
    • add datum. option to fieldRef and use it in time transform and template
    • eliminate outdated fieldRef options
    • Replace the eliminated group mark properties with field.group
    • Refer to {group: 'mark.group.width’} with
  • Transforms
    • Aggregation, Bin
    • Stack
      • Use vega2 stack's parameter and rename it to <field_name>_start|end, remove the need to add facet transform before stacking
      • Make facet comes after stack for stacked area chart (This makes stacked area chart looks almost right but still looks weird due to #307 – see example screenshot)
    • Facet
      • use field name reference instead of using keys.0 (#639)
  • Aggregation (#621)
    • avg => mean
    • add all supported aggregation in Vega 2
  • Sorting (#612)
    • remove sort.js and no longer use sort-<field_name> tables as data source
    • modify scale.domain() to include DataRef’s .sort object
    • modify sort property to be consistent with Vega 2 (but still leave it as a top-level vega-lite property)
      • sort.name => sort.field
      • sort.aggregate => sort.op

API Change

  • vl.field => vl.encDef, field.js => encDef.js

Internal Refactor

Variable Name

  • fieldName => field
  • field => encDef

Other

  • update vega dependency in editor and gallery to Vega 2
  • removed _vega2 flag
  • extract filter non-positive value when log are presented from normal filter
  • eliminate encoding.fieldName() and just use encoding.field(...).name
  • only use encDef.name where applicable rather than calling fieldRef
  • local variable refactor in scale.js
  • move stack’s stacked data transform to data.stack
  • add encoding.stack so we do not have to pass stack around
  • remove Encoding.toggleFilterNullO, which should just be a part of vega-lite-ui

Examples

  • added Aggregate Bar Chart, Stacked bar chart, Trellis Stacked Bar Chart
  • both vl input and vg output are validated in the gallery and editor

v0.7.18

09 Oct 18:28
Compare
Choose a tag to compare
Release v0.7.18.

Release v0.7.13

11 Aug 03:40
Compare
Choose a tag to compare
Release v0.7.13.

v0.7.1

25 May 18:19
Compare
Choose a tag to compare
  • change .aggr => .aggregate, .enc=>.encoding
  • add N (nominal) data type
  • add more color palette options
    • use color brewer scale or interpolate color for O
    • use categorical color scale for N