diff --git a/hnn_core/gui/_viz_manager.py b/hnn_core/gui/_viz_manager.py index 67dbad84f..d60f2a76c 100644 --- a/hnn_core/gui/_viz_manager.py +++ b/hnn_core/gui/_viz_manager.py @@ -300,14 +300,13 @@ def _update_ax(fig, ax, single_simulation, sim_name, plot_type, plot_config): if len(dpls_copied) > 0: min_f = plot_config['min_spectral_frequency'] max_f = plot_config['max_spectral_frequency'] - step_f = 1.0 + if max_f > min_f: + step_f = 1 + elif min_f > max_f: + step_f = -1 freqs = np.arange(min_f, max_f, step_f) n_cycles = freqs / 2. - if freqs[0] > freqs[-1]: - freqs = freqs[::-1] - ax.invert_yaxis() - try: dpls_copied[0].plot_tfr_morlet( freqs, diff --git a/hnn_core/tests/test_gui.py b/hnn_core/tests/test_gui.py index d286b8f76..14049b97c 100644 --- a/hnn_core/tests/test_gui.py +++ b/hnn_core/tests/test_gui.py @@ -700,6 +700,26 @@ def test_gui_visualization(setup_gui): assert any(['_cbar-ax-' in attr for attr in dir(gui.viz_manager.figs[figid])]) is False assert len(gui.viz_manager.figs[figid].axes) == 1 + assert not gui.viz_manager.figs[figid].axes[0].has_data() + + # Test that frequency inversion works + # First, test no inversion + gui._simulate_viz_action("edit_figure", figname, axname, 'default', + 'spectrogram', { + 'min_spectral_frequency': 10, + 'max_spectral_frequency': 100, + }, 'plot') + assert gui.viz_manager.figs[figid].axes[0].has_data() + gui._simulate_viz_action("edit_figure", figname, axname, 'default', + 'spectrogram', {}, 'clear') + assert not gui.viz_manager.figs[figid].axes[0].has_data() + # Next, test inversion + gui._simulate_viz_action("edit_figure", figname, axname, 'default', + 'spectrogram', { + 'min_spectral_frequency': 100, + 'max_spectral_frequency': 10, + }, 'plot') + assert gui.viz_manager.figs[figid].axes[0].has_data() else: # Check if the correct number of axes are present