Skip to content

Releases: holoviz/datashader

0.6.0

19 Aug 20:50
Compare
Choose a tag to compare

New release of features that may still be in progress, but are already usable:

  • Added graph/network plotting support (still may be in flux) (#385, #390, #398, #408, #415, #418, #436)
  • Improved raster regridding based on gridtools and xarray (still may be in flux); no longer depends on rasterio and scikit-image (#383, #389, #423)
  • Significantly improved performance for dataframes with categorical fields

New examples (.ipynb files in examples/):

  • osm-1billion: 1-billion-point OSM example, for in-core processing on a 16GB laptop.
  • edge_bundling: Plotting graphs using "edgehammer" bundling of edges to show structure.
  • packet_capture_graph: Laying out and visualizing network packets as a graph.

Backwards compatibility:

  • Remove deprecated interpolate and colorize functions
  • Made raster processing consistently use bin centers to match xarray conventions (requires recent fixes to xarray; only available on a custom channel for now) (#422)
  • Fixed various limitations and quirks for NaN values
  • Made alpha scaling respect min_alpha consistently (#371)

Known issues:

  • If you use Jupyter notebook 5.0 (earlier or later versions should be ok), you will need to override a setting that prevents visualizations from appearing, e.g.: jupyter notebook --NotebookApp.iopub_data_rate_limit=100000000 census.ipynb &
  • The dashboard needs updating to match current Bokeh releases; most parts other than hover and legends, should be functional but it needs a rewrite to use currently recommended approaches.

0.5.0

12 May 15:20
Compare
Choose a tag to compare

Major release with extensive optimizations and new plotting-library support, incorporating 9 months of development from 5 main contributors:

  • Extensive optimizations for speed and memory usage, providing at least 5X improvements in speed (using the latest Numba versions) and 2X improvements in peak memory requirements. Outlined in #313 and #129.
  • Added HoloViews support for flexible, composable, dynamic plotting, making it simple to switch between datashaded and non-datashaded versions of a Bokeh or Matplotlib plot.
  • Added examples/environment.yml to make it easy to install dependencies needed to run the examples.
  • Updated examples to use the now-recommended supported and fast Apache Parquet file format
  • Added support for variable alpha for non-categorical aggregates, by specifying a single color rather than a list or colormap #345
  • Added datashader.utils.lnglat_to_meters utility function for working in Web Mercator coordinates with Bokeh
  • Added discussion of why you should be using uniform colormaps, and examples of using uniform colormaps from the new colorcet package
  • Numerous bug fixes and updates, mostly in the examples and Bokeh extension
  • Updated reference manual and documentation

New examples (.ipynb files in examples/):

  • holoviews_datashader: Using HoloViews to create dynamic Datashader plots easily
  • census-hv-dask: Using GeoViews for overlaying shape files, demonstrating gerrymandering by race
  • nyc_taxi-paramnb: Using ParamNB to make a simple dashboard
  • lidar: Visualizing point clouds
  • solar: Visualizing solar radiation data
  • Dynamic 1D histogram example (last code cell in examples/nyc_taxi-nongeo.ipynb)
  • dashboard: Now includes opensky example (python dashboard/dashboard.py -c dashboard/opensky.yml)

Backwards compatibility:

  • To improve consistency with Numpy and Python data structures and eliminate issues with an empty column and row at the edge of the aggregated raster, the provided xrange,yrange bounds are now treated as upper exclusive. Results will thus differ between 0.5.0 and earlier versions. See #259 for discussion.

Known issues:

  • If you use Jupyter notebook 5.0 (earlier or later versions should be ok), you will need to override a setting that prevents visualizations from appearing, e.g.: jupyter notebook --NotebookApp.iopub_data_rate_limit=100000000 census.ipynb &
  • Legend and hover support is currently disabled for the dashboard, due to ongoing development of a simpler approach.

0.4.0

18 Aug 17:28
Compare
Choose a tag to compare

Minor bugfix release to support Bokeh 0.12.1, with some API and defaults changes.

  • Added examples() function to obtain the notebooks and other examples corresponding to the installed datashader version; see examples/README.md.
  • Updated dashboard example to match changes in Bokeh
  • Added default color cycle with distinguishable colors for shading categorical data; now tf.shade(agg) with no other arguments should give a usable plot for both categorical and non-categorical data.

Backwards compatibility:

  • Replaced confusing tf.interpolate() and tf.colorize() functions with a single shading function tf.shade(). The previous names are still supported, but give deprecation warnings. Calls to the previous functions using keyword arguments can simply be renamed to use tf.shade, as all the same keywords are accepted, but calls to colorize that used a positional argument for e.g. the color_key will now need to use a keyword when calling shade().
  • Increased default threshold for tf.dynspread() to improve visibility of sparse dots
  • Increased default min_alpha for tf.shade() (formerly tf.colorize()) to avoid undersaturation

Known issues:

  • For Bokeh 0.12.1, some notebooks will give warnings for Bokeh plots when used with Jupyter's "Run All" command. Bokeh 0.12.2 will fix this problem when it is released, but for now you can either downgrade to 0.12.0 or use single-cell execution.
  • There are some Bokeh compatibility issues with the dashboard example that are still being investigated and may require a new Bokeh or datashader release in this series.

0.3.2

18 Jul 19:50
Compare
Choose a tag to compare

Minor bugfix release to support Bokeh 0.12:

  • Fixed InteractiveImage zooming to work with Bokeh 0.12.
  • Added more responsive event throttling for DynamicImage; throttle parameter no longer needed and is now deprecated
  • Fixed datashader-download-data command
  • Improved non-geo Taxi example
  • Temporarily disabled dashboard legends; will re-enable in future release

0.3.0

23 Jun 20:49
Compare
Choose a tag to compare

The major feature of this release is support of raster data via Canvas.raster. To use this feature, you must install the optional dependencies via conda install rasterio scikit-image. rasterio relies on gdal, whose conda package has some known bugs, including a missing dependancy for conda install krb5. InteractiveImage in this release requires bokeh 0.11.1 or earlier, and will not work with bokeh 0.12.

  • PR #160 #187 Improved example notebooks and dashboard
  • PR #186 #184 #178 Add datashader-download-data cli command for grabbing example datasets
  • PR #176 #177 Changed census example data to use HDF5 format (slower but more portable)
  • PR #156 #173 #174 Added Landsat8 and race/ethnicity vs. elevation example notebooks
  • PR #172 #159 #157 #149 Added support for images using Canvas.raster (requires rasterio and scikit-image)
  • PR #169 Added legends notebook demonstrating create_categorical_legend and create_ramp_legend
  • PR #162 Added notebook example for datashader.bokeh_ext.HoverLayer
  • PR #152 Added alpha arg to tf.interpolate
  • PR #151 #150, etc. Small bugfixes
  • PR #146 #145 #144 #143 Added streaming example
  • Added hold decorator to utils, summarize_aggregate_values helper function
  • Added FAQ to docs

Backwards compatibility:

  • Removed memoize_method
  • Renamed datashader.callbacks --> datashader.bokeh_ext
  • Renamed examples/plotting_problems.ipynb --> examples/plotting_pitfalls.ipynb

0.2.0

01 Apr 18:18
Compare
Choose a tag to compare

A major release with significant new functionality and some small backwards-incompatible changes.

New features:

  • PR #124, census: New census notebook example, showing how to work with categorical data.
  • PR #79, tseries, trajectory: Added line glyph and .any() reduction, used in new time series and trajectory notebook examples.
  • PR #76, #77, #131, etc.: Updated all of the other notebooks in examples/, including nyc_taxi.
  • PR #100, #125: Improved dashboard example: added categorical data support, census and osm datasets, legend and hover support, better performance, out of core option, and more
  • PR #109, #111: Add full colormap support via a new cmap argument to interpolate and colorize; supports color ranges as lists, plus Bokeh palettes and matplotlib colormaps
  • PR #98: Added set_background to make it easier to work with images having a different background color than the default white notebooks
  • PR #119, #121: Added eq_hist option for how in interpolate, performing histogram equalization on the data to reveal structure at every intensity level
  • PR #80, #83, #128: Greatly improved InteractiveImage performance and responsiveness
  • PR #74, #123: Added operators for spreading pixels (to make individual datapoints visible, as circles, squares, or arbitrary mask shapes) and compositing (for simple and flexible composition of images)

Backwards compatibility:

  • The low and high color options to interpolate and colorize are now deprecated and will be removed in the next release; use cmap=[low,high] instead.
  • The transfer function merge has been removed to avoid confusion. stack and others can be used instead, depending on the use case.
  • The default how for interpolate and colorize is now eq_hist, to reveal the structure automatically regardless of distribution.
  • Pipeline now has a default dynspread step, to make isolated points visible when zooming in, and the default sizes have changed.

0.1.0

01 Apr 18:18
Compare
Choose a tag to compare

Initial public release