Releases: holoviz/datashader
0.6.0
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
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
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()
andtf.colorize()
functions with a single shading functiontf.shade()
. The previous names are still supported, but give deprecation warnings. Calls to the previous functions using keyword arguments can simply be renamed to usetf.shade
, as all the same keywords are accepted, but calls tocolorize
that used a positional argument for e.g. thecolor_key
will now need to use a keyword when callingshade()
. - Increased default
threshold
fortf.dynspread()
to improve visibility of sparse dots - Increased default
min_alpha
fortf.shade()
(formerlytf.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
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
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
(requiresrasterio
andscikit-image
) - PR #169 Added legends notebook demonstrating
create_categorical_legend
andcreate_ramp_legend
- PR #162 Added notebook example for
datashader.bokeh_ext.HoverLayer
- PR #152 Added
alpha
arg totf.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
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 tointerpolate
andcolorize
; 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
andhigh
color options tointerpolate
andcolorize
are now deprecated and will be removed in the next release; usecmap=[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
forinterpolate
andcolorize
is noweq_hist
, to reveal the structure automatically regardless of distribution. Pipeline
now has a defaultdynspread
step, to make isolated points visible when zooming in, and the default sizes have changed.