Maps
Brunel now supports maps, using an intelligent matching feature and an online atlas of world regions.
maps can be specified by name by requesting a given map in the `map` command, or Brunel will find a suitable
set of maps for a given data column.
By specifying a `key` field, that field is matched against Brunel's database of known regions and is used
to generate maps. Key features of mapping are:
* Maps can have multiple layers, each specified as an element using the `+` notation
* Key names can be used to create maps, or explicit latitude/longitude can be defined
* By default, Brunel chooses which set of features will make a suitable map based on the key data
* Brunel chooses a suitable projection based on the regions to be displayed
* Maps elements default to polygonal features, but specifying `point` or `text` converts the element to
one of that type, with all the usual features
* By adding the additional element `map(labels)` maps are automatically labeled with suitable labels
taking into account the scaling of the map.
The region and name data that back the map feature are courtesy of the public domain data sets found in the
Natural Earth repository (Free vector and raster map data naturalearthdata.com).
Networks
The `edge` element is now more fully supported, as is the `network` diagram. This allows the creation of node
and link diagrams, by default using D3's force layout method. These diagrams:
* Animate as they are laid out
* Allow node dragging using force-directed updates
* Use point elements for the nodes, allowing color, size and labeling as usual for such an element
* Use edge elements for the links, allowing color and size to be used
Two dataset are usually required, one for the nodes and one for the edges. However, a single data set can be used
for the edges if there is little no extra data for the nodes. The nodes can be generated form the edges by combining
them as you would a series, for example: `edge key(a,b) + y(a,b) label(values)` will generate a labeled graph from
a single dataset consisting only of edges from column _a_ to column _b_.
Spark/Scala Notebooks
This release adds support for Scala/Spark Jupyter Notebooks using the Apachee Toree kernel. See the notes in the [spark-kernel](https://github.com/Brunel-Visualization/Brunel/tree/master/spark-kernel) project for details.
Other New Features
* Improved axis options. `axis(...)` now takes options `x`, `y`, `none` or both `x` and `y` as options.
Options `x` and `y` can take optional parameters that are numeric (to hint at the number of ticks
desired for a numeric axis) or string (to give a title to an axis, with the empty string '' suppressing titles)
* Improved the algorithm for shortening labels (using `label(field:N)` where _N_ is the desired text length)
* Clustering is now allowed; specifying two _x_ dimensions where the first is categorical will place the
second dimensions within the first as a clustered X axis.
Fixes
* Improved labeling for diagrams ensures labels are not "lost" when diagram structure animates
* Labels in transposed charts work as expected
* Some defects with tooltip locations resolved
Future
The use of `:: data` in notebooks is deprecated; it continues to be supported in 1.0, but will go away
in the next version. The language command `data(...)` should be used instead.