Open jluethi opened 3 years ago
Same issue with booleans:
Traceback (most recent call last):
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/magicgui/widgets/_bases/value_widget.py", line 47, in _on_value_change
self.changed(value=args[0] if args else None)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/magicgui/events.py", line 656, in __call__
self._invoke_callback(cb, event)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/magicgui/events.py", line 677, in _invoke_callback
_handle_exception(
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/magicgui/events.py", line 141, in _handle_exception
raise value
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/magicgui/events.py", line 675, in _invoke_callback
cb(event)
File "/Users/joel/Dropbox/Joel/PelkmansLab/Code/napari-feature-visualization/napari_feature_visualization/feature_vis.py", line 100, in update_rescaling
widget.lower_contrast_limit.value = df[event.value].quantile(quantiles[0])
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/pandas/core/series.py", line 2267, in quantile
result = df.quantile(q=q, interpolation=interpolation, numeric_only=False)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/pandas/core/frame.py", line 9266, in quantile
result = data._mgr.quantile(
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/pandas/core/internals/managers.py", line 491, in quantile
block = b.quantile(axis=axis, qs=qs, interpolation=interpolation)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/pandas/core/internals/blocks.py", line 1592, in quantile
result = nanpercentile(
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/pandas/core/nanops.py", line 1675, in nanpercentile
return np.percentile(values, q, axis=axis, interpolation=interpolation)
File "<__array_function__ internals>", line 5, in percentile
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/numpy/lib/function_base.py", line 3818, in percentile
return _quantile_unchecked(
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/numpy/lib/function_base.py", line 3937, in _quantile_unchecked
r, k = _ureduce(a, func=_quantile_ureduce_func, q=q, axis=axis, out=out,
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/numpy/lib/function_base.py", line 3515, in _ureduce
r = func(a, **kwargs)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/numpy/lib/function_base.py", line 4064, in _quantile_ureduce_func
r = _lerp(x_below, x_above, weights_above, out=out)
File "/Users/joel/opt/miniconda3/envs/hiPSC/lib/python3.9/site-packages/numpy/lib/function_base.py", line 3961, in _lerp
diff_b_a = subtract(b, a)
TypeError: numpy boolean subtract, the `-` operator, is not supported, use the bitwise_xor, the `^` operator, or the logical_xor function instead.
Also an issue if nan's exist in the column:
Traceback (most recent call last):
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/widgets/_bases/value_widget.py", line 47, in _on_value_change
self.changed(value=args[0] if args else None)
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/events.py", line 656, in __call__
self._invoke_callback(cb, event)
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/events.py", line 677, in _invoke_callback
_handle_exception(
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/events.py", line 141, in _handle_exception
raise value
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/events.py", line 675, in _invoke_callback
cb(event)
File "/Users/joel/Dropbox/Joel/PelkmansLab/Code/napari-feature-visualization/napari_feature_visualization/feature_vis.py", line 52, in update_rescaling
widget.lower_contrast_limit.value = df[event.value].quantile(quantiles[0])
File "/Users/joel/opt/miniconda3/envs/napari/lib/python3.9/site-packages/magicgui/widgets/_bases/ranged_widget.py", line 58, in value
raise ValueError(
ValueError: value nan is outside of the allowed range: (-100000000.0, 100000000.0)
Some contents of a dataframe may not be numeric, e.g. strings. Catch this when the calculations for contrast limits are made Probably just don't calculate a new limit.
What to do if a user runs the plugin while a string column is selected?