Skip to content

Commit

Permalink
Merge bd0f05c into e2902ec
Browse files Browse the repository at this point in the history
  • Loading branch information
philippjfr committed Oct 8, 2019
2 parents e2902ec + bd0f05c commit 35c8535
Show file tree
Hide file tree
Showing 51 changed files with 937 additions and 2,418 deletions.
79 changes: 79 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,82 @@
Version 1.12.6
==============

This is a minor release containing a large number of bug fixes thanks
to the contributions from @joelostblom, @ahuang11, @chbrandt,
@randomstuff, @jbednar and @philippjfr. It also contains a number of
enhancements. This is the last planned release in the 1.12.x series.

Enhancements:

- Ensured that shared_axes option on layout plots is respected across backends
([#3410](https://github.com/pyviz/holoviews/issues/3410))
- Allow plotting partially irregular (curvilinear) mesh
([#3952](https://github.com/pyviz/holoviews/issues/3952))
- Add support for dependent functions in dynamic operations
([#3975](https://github.com/pyviz/holoviews/issues/3975),
[#3980](https://github.com/pyviz/holoviews/issues/3980))
- Add support for fast QuadMesh rasterization with datashader >= 0.8
([#4020](https://github.com/pyviz/holoviews/issues/4020))
- Allow passing Panel widgets as operation parameter
([#4028](https://github.com/pyviz/holoviews/issues/4028))

Bug fixes:

- Fixed issue rounding datetimes in Curve step interpolation
([#3958](https://github.com/pyviz/holoviews/issues/3958))
- Fix resampling of categorical colorcet colormaps
([#3977](https://github.com/pyviz/holoviews/issues/3977))
- Ensure that changing the Stream source deletes the old source
([#3978](https://github.com/pyviz/holoviews/issues/3978))
- Ensure missing hover tool does not break plot
([#3981](https://github.com/pyviz/holoviews/issues/3981))
- Ensure .apply work correctly on HoloMaps
([#3989](https://github.com/pyviz/holoviews/issues/3989),
[#4025](https://github.com/pyviz/holoviews/issues/4025))
- Ensure Grid axes are always aligned in bokeh
([#3916](https://github.com/pyviz/holoviews/issues/3916))
- Fix hover tool on Image and Raster plots with inverted axis
([#4010](https://github.com/pyviz/holoviews/issues/4010))
- Ensure that DynamicMaps are still linked to streams after groupby
([#4012](https://github.com/pyviz/holoviews/issues/4012))
- Using hv.renderer no longer switches backends
([#4013](https://github.com/pyviz/holoviews/issues/4013))
- Ensure that Points/Scatter categorizes data correctly when axes are inverted
([#4014](https://github.com/pyviz/holoviews/issues/4014))
- Fixed error creating legend for matplotlib Image artists
([#4031](https://github.com/pyviz/holoviews/issues/4031))
- Ensure that unqualified Options objects are supported
([#4032](https://github.com/pyviz/holoviews/issues/4032))
- Fix bounds check when constructing Image with ImageInterface
([#4035](https://github.com/pyviz/holoviews/issues/4035))
- Ensure elements cannot be constructed with wrong number of columns
([#4040](https://github.com/pyviz/holoviews/issues/4040))
- Ensure streaming data works on bokeh server
([#4041](https://github.com/pyviz/holoviews/issues/4041))

Compatibility:

- Ensure HoloViews is fully compatible with xarray 0.13.0
([#3973](https://github.com/pyviz/holoviews/issues/3973))
- Ensure that deprecated matplotlib 3.1 rcparams do not warn
([#4042](https://github.com/pyviz/holoviews/issues/4042))
- Ensure compatibility with new legend options in bokeh 1.4.0
([#4036](https://github.com/pyviz/holoviews/issues/4036))

Version 1.12.5
==============

This is a very minor bug fix release ensuring compatibility with recent
releases of dask.

Compatibility:

- Ensure that HoloViews can be imported when dask is installed but
dask.dataframe is not.
([#3900](https://github.com/pyviz/holoviews/issues/3900))
- Fix for rendering Scatter3D with matplotlib 3.1
([#3898](https://github.com/pyviz/holoviews/issues/3898))

Version 1.12.4
==============

Expand Down
2 changes: 1 addition & 1 deletion doc/nbpublisher
82 changes: 82 additions & 0 deletions doc/releases.rst
Expand Up @@ -15,6 +15,88 @@ Version 1.12
~~~~~~~~~~~~



Version 1.12.6
**************

This is a minor release containing a large number of bug fixes thanks
to the contributions from @joelostblom, @ahuang11, @chbrandt,
@randomstuff, @jbednar and @philippjfr. It also contains a number of
enhancements. This is the last planned release in the 1.12.x series.

Enhancements:

* Ensured that shared_axes option on layout plots is respected across backends
(`#3410 <https://github.com/pyviz/holoviews/issues/3410>`_)
* Allow plotting partially irregular (curvilinear) mesh
(`#3952 <https://github.com/pyviz/holoviews/issues/3952>`_)
* Add support for dependent functions in dynamic operations
(`#3975 <https://github.com/pyviz/holoviews/issues/3975>`_,
`#3980 <https://github.com/pyviz/holoviews/issues/3980>`_)
* Add support for fast QuadMesh rasterization with datashader >= 0.8
(`#4020 <https://github.com/pyviz/holoviews/issues/4020>`_)
* Allow passing Panel widgets as operation parameter
(`#4028 <https://github.com/pyviz/holoviews/issues/4028>`_)

Bug fixes:

* Fixed issue rounding datetimes in Curve step interpolation
(`#3958 <https://github.com/pyviz/holoviews/issues/3958>`_)
* Fix resampling of categorical colorcet colormaps
(`#3977 <https://github.com/pyviz/holoviews/issues/3977>`_)
* Ensure that changing the Stream source deletes the old source
(`#3978 <https://github.com/pyviz/holoviews/issues/3978>`_)
* Ensure missing hover tool does not break plot
(`#3981 <https://github.com/pyviz/holoviews/issues/3981>`_)
* Ensure .apply work correctly on HoloMaps
(`#3989 <https://github.com/pyviz/holoviews/issues/3989>`_,
`#4025 <https://github.com/pyviz/holoviews/issues/4025>`_)
* Ensure Grid axes are always aligned in bokeh
(`#3916 <https://github.com/pyviz/holoviews/issues/3916>`_)
* Fix hover tool on Image and Raster plots with inverted axis
(`#4010 <https://github.com/pyviz/holoviews/issues/4010>`_)
* Ensure that DynamicMaps are still linked to streams after groupby
(`#4012 <https://github.com/pyviz/holoviews/issues/4012>`_)
* Using hv.renderer no longer switches backends
(`#4013 <https://github.com/pyviz/holoviews/issues/4013>`_)
* Ensure that Points/Scatter categorizes data correctly when axes are inverted
(`#4014 <https://github.com/pyviz/holoviews/issues/4014>`_)
* Fixed error creating legend for matplotlib Image artists
(`#4031 <https://github.com/pyviz/holoviews/issues/4031>`_)
* Ensure that unqualified Options objects are supported
(`#4032 <https://github.com/pyviz/holoviews/issues/4032>`_)
* Fix bounds check when constructing Image with ImageInterface
(`#4035 <https://github.com/pyviz/holoviews/issues/4035>`_)
* Ensure elements cannot be constructed with wrong number of columns
(`#4040 <https://github.com/pyviz/holoviews/issues/#4040>`_)
* Ensure streaming data works on bokeh server
(`#4041 <https://github.com/pyviz/holoviews/issues/4041>`_)

Compatibility:

* Ensure HoloViews is fully compatible with xarray 0.13.0
(`#3973 <https://github.com/pyviz/holoviews/issues/3973>`_)
* Ensure that deprecated matplotlib 3.1 rcparams do not warn
(`#4042 <https://github.com/pyviz/holoviews/issues/4042>`_)
* Ensure compatibility with new legend options in bokeh 1.4.0
(`#4036 <https://github.com/pyviz/holoviews/issues/4036>`_)


Version 1.12.5
**************


This is a very minor bug fix release ensuring compatibility with recent
releases of dask.

Compatibility:

* Ensure that HoloViews can be imported when dask is installed but
dask.dataframe is not.
(`#3900 <https://github.com/pyviz/holoviews/issues/3900>`_)
* Fix for rendering Scatter3D with matplotlib 3.1
(`#3898 <https://github.com/pyviz/holoviews/issues/3898>`_)

Version 1.12.4
**************

Expand Down
64 changes: 18 additions & 46 deletions examples/gallery/apps/bokeh/crossfilter.py
@@ -1,28 +1,20 @@
"""
An example demonstrating how to put together a crossfilter app based
on the Auto MPG dataset. Demonstrates how to dynamically generate
bokeh plots using the HoloViews API and replacing the bokeh plot
based on the current widget selections.
An example demonstrating how to put together a cross-selector app based
on the Auto MPG dataset.
"""
import holoviews as hv
import panel as pn
import panel.widgets as pnw

from bokeh.layouts import row, widgetbox
from bokeh.models import Select
from bokeh.plotting import curdoc
from bokeh.sampledata.autompg import autompg

df = autompg.copy()

SIZES = list(range(6, 22, 3))
ORIGINS = ['North America', 'Europe', 'Asia']

# data cleanup
df.cyl = [str(x) for x in df.cyl]
df.origin = [ORIGINS[x-1] for x in df.origin]

df['year'] = [str(x) for x in df.yr]
del df['yr']

df['mfr'] = [x.split()[0] for x in df.name]
df.loc[df.mfr=='chevy', 'mfr'] = 'chevrolet'
df.loc[df.mfr=='chevroelt', 'mfr'] = 'chevrolet'
Expand All @@ -38,40 +30,20 @@
continuous = [x for x in columns if x not in discrete]
quantileable = [x for x in continuous if len(df[x].unique()) > 20]

renderer = hv.renderer('bokeh')
options = hv.Store.options(backend='bokeh')
options.Points = hv.Options('plot', width=800, height=600, size_index=None,)
options.Points = hv.Options('style', cmap='rainbow', line_color='black')

def create_figure():
label = "%s vs %s" % (x.value.title(), y.value.title())
kdims = [x.value, y.value]

opts, style = {}, {}
opts['color_index'] = color.value if color.value != 'None' else None
if size.value != 'None':
opts['size_index'] = size.value
opts['scaling_factor'] = (1./df[size.value].max())*200
points = hv.Points(df, kdims=kdims, label=label).opts(plot=opts, style=style)
return renderer.get_plot(points).state

def update(attr, old, new):
layout.children[1] = create_figure()

x = Select(title='X-Axis', value='mpg', options=quantileable)
x.on_change('value', update)

y = Select(title='Y-Axis', value='hp', options=quantileable)
y.on_change('value', update)

size = Select(title='Size', value='None', options=['None'] + quantileable)
size.on_change('value', update)
x = pnw.Select(name='X-Axis', value='mpg', options=quantileable)
y = pnw.Select(name='Y-Axis', value='hp', options=quantileable)
size = pnw.Select(name='Size', value='None', options=['None'] + quantileable)
color = pnw.Select(name='Color', value='None', options=['None'] + quantileable)

color = Select(title='Color', value='None', options=['None'] + quantileable)
color.on_change('value', update)
@pn.depends(x.param.value, y.param.value, color.param.value, size.param.value)
def create_figure(x, y, color, size):
opts = dict(cmap='rainbow', width=800, height=600, padding=0.1, line_color='black')
if color != 'None':
opts['color'] = color
if size != 'None':
opts['size'] = hv.dim(size).norm()*20
return hv.Points(df, [x, y], label="%s vs %s" % (x.title(), y.title())).opts(**opts)

controls = widgetbox([x, y, color, size], width=200)
layout = row(controls, create_figure())
widgets = pn.WidgetBox(x, y, color, size, width=200)

curdoc().add_root(layout)
curdoc().title = "Crossfilter"
pn.Row(widgets, create_figure).servable('Cross-selector')

0 comments on commit 35c8535

Please sign in to comment.