You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The plot_raster() function fails with matplotlib==3.3.1 installed due to a bug that affects seaborn's hue kwarg. I played around with a few different matplotlib versions and verified it only exists in 3.3.1 (i.e., 3.3.0 and 3.3.2 are both fine), so simply excluding that specific version in both the install_requires and requirements.txt should be fine.
Minimal code to reproduce
import matplotlib as mpl
from psifr import fr
print(f'matplotlib version: {mpl.__version__}')
df = fr.sample_data('Morton2013')
data = fr.merge_free_recall(df)
subj = fr.filter_data(data, subjects=1)
fr.plot_raster(subj)
Output & traceback
matplotlib version: 3.3.1
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/IPython/core/formatters.py in __call__(self, obj)
339 pass
340 else:
--> 341 return printer(obj)
342 # Finally look for special method names
343 method = get_real_method(obj, self.print_method)
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/IPython/core/pylabtools.py in <lambda>(fig)
246
247 if 'png' in formats:
--> 248 png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))
249 if 'retina' in formats or 'png2x' in formats:
250 png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/IPython/core/pylabtools.py in print_figure(fig, fmt, bbox_inches, **kwargs)
130 FigureCanvasBase(fig)
131
--> 132 fig.canvas.print_figure(bytes_io, **kw)
133 data = bytes_io.getvalue()
134 if fmt == 'svg':
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)
2191 else suppress())
2192 with ctx:
-> 2193 self.figure.draw(renderer)
2194
2195 bbox_inches = self.figure.get_tightbbox(
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
39 renderer.start_filter()
40
---> 41 return draw(artist, renderer, *args, **kwargs)
42 finally:
43 if artist.get_agg_filter() is not None:
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/figure.py in draw(self, renderer)
1861
1862 self.patch.draw(renderer)
-> 1863 mimage._draw_list_compositing_images(
1864 renderer, self, artists, self.suppressComposite)
1865
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/image.py in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)
129 if not_composite or not has_images:
130 for a in artists:
--> 131 a.draw(renderer)
132 else:
133 # Composite any adjacent images together
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
39 renderer.start_filter()
40
---> 41 return draw(artist, renderer, *args, **kwargs)
42 finally:
43 if artist.get_agg_filter() is not None:
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/cbook/deprecation.py in wrapper(*inner_args, **inner_kwargs)
409 else deprecation_addendum,
410 **kwargs)
--> 411 return func(*inner_args, **inner_kwargs)
412
413 return wrapper
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
2746 renderer.stop_rasterizing()
2747
-> 2748 mimage._draw_list_compositing_images(renderer, self, artists)
2749
2750 renderer.close_group('axes')
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/image.py in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)
129 if not_composite or not has_images:
130 for a in artists:
--> 131 a.draw(renderer)
132 else:
133 # Composite any adjacent images together
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
39 renderer.start_filter()
40
---> 41 return draw(artist, renderer, *args, **kwargs)
42 finally:
43 if artist.get_agg_filter() is not None:
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/collections.py in draw(self, renderer)
929 def draw(self, renderer):
930 self.set_sizes(self._sizes, self.figure.dpi)
--> 931 Collection.draw(self, renderer)
932
933
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
39 renderer.start_filter()
40
---> 41 return draw(artist, renderer, *args, **kwargs)
42 finally:
43 if artist.get_agg_filter() is not None:
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/collections.py in draw(self, renderer)
383 else:
384 combined_transform = transform
--> 385 extents = paths[0].get_extents(combined_transform)
386 if (extents.width < self.figure.bbox.width
387 and extents.height < self.figure.bbox.height):
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/matplotlib/path.py in get_extents(self, transform, **kwargs)
601 xys.append(curve([0, *dzeros, 1]))
602 xys = np.concatenate(xys)
--> 603 return Bbox([xys.min(axis=0), xys.max(axis=0)])
604
605 def intersects_path(self, other, filled=True):
~/opt/anaconda3/envs/psifr-review/lib/python3.8/site-packages/numpy/core/_methods.py in _amin(a, axis, out, keepdims, initial, where)
41 def _amin(a, axis=None, out=None, keepdims=False,
42 initial=_NoValue, where=True):
---> 43 return umr_minimum(a, axis, None, out, keepdims, initial, where)
44
45 def _sum(a, axis=None, dtype=None, out=None, keepdims=False,
ValueError: zero-size array to reduction operation minimum which has no identity
The text was updated successfully, but these errors were encountered:
it'd also probably be worth pinning minimum versions of other packages whose APIs have had non-trivial changes lately (pandas>=1.0.0, seaborn>=0.9.1, etc.)
re: openjournals/joss-reviews#2669
The
plot_raster()
function fails withmatplotlib==3.3.1
installed due to a bug that affects seaborn'shue
kwarg. I played around with a few differentmatplotlib
versions and verified it only exists in 3.3.1 (i.e., 3.3.0 and 3.3.2 are both fine), so simply excluding that specific version in both theinstall_requires
and requirements.txt should be fine.Minimal code to reproduce
Output & traceback
The text was updated successfully, but these errors were encountered: