panel.pane.HoloViews

Here are the examples of the python api panel.pane.HoloViews taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

21 Examples 7

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_pane_initialize_empty(document, comm):
    pane = HoloViews()

    # Create pane
    row = pane.get_root(document, comm=comm)

    assert isinstance(row, BkRow)
    assert len(row.children) == 1
    model = row.children[0]
    assert isinstance(model, BkSpacer)

    pane.object = hv.Curve([1, 2, 3])
    model = row.children[0]
    assert isinstance(model, Figure)


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_updates_widgets(document, comm):
    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['X', 'Y'])

    hv_pane = HoloViews(hmap)
    layout = hv_pane.get_root(document, comm)

    hv_pane.widgets = {'X': Select}
    assert isinstance(hv_pane.widget_box[0], Select)
    assert isinstance(layout.children[1].children[0].children[0], BkSelect)

    hv_pane.widgets = {'X': DiscreteSlider}
    assert isinstance(hv_pane.widget_box[0], DiscreteSlider)
    assert isinstance(layout.children[1].children[0].children[0], BkColumn)
    assert isinstance(layout.children[1].children[0].children[0].children[1], BkSlider)

@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_widgets_update_plot(document, comm):
    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['X', 'Y'])

    hv_pane = HoloViews(hmap, backend='bokeh')
    layout = hv_pane.get_root(document, comm)

    cds = layout.children[0].select_one(ColumnDataSource)
    assert cds.data['y'] == np.array([0])
    hv_pane.widget_box[0].value = 1
    hv_pane.widget_box[1].value = chr(65+1)
    assert cds.data['y'] == np.array([1])


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_linked_axes(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3])

    layout = Row(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is p2.x_range
    assert p1.y_range is p2.y_range


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_linked_axes_flexbox(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3])

    layout = FlexBox(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is p2.x_range
    assert p1.y_range is p2.y_range


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_linked_axes_merged_ranges(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([0, 1, 2, 3, 4])

    layout = Row(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is p2.x_range
    assert p1.y_range is p2.y_range
    assert p1.y_range.start == -0.4
    assert p1.y_range.end == 4.4


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_linked_x_axis(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3], vdims='y2')

    layout = Row(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is p2.x_range
    assert p1.y_range is not p2.y_range


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_axiswise_not_linked_axes(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3]).opts(axiswise=True, backend='bokeh')

    layout = Row(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is not p2.x_range
    assert p1.y_range is not p2.y_range


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_shared_axes_opt_not_linked_axes(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3]).opts(shared_axes=False, backend='bokeh')

    layout = Row(HoloViews(c1, backend='bokeh'), HoloViews(c2, backend='bokeh'))

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is not p2.x_range
    assert p1.y_range is not p2.y_range


@hv_available

3 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_not_linked_axes(document, comm):
    c1 = hv.Curve([1, 2, 3])
    c2 = hv.Curve([1, 2, 3])

    layout = Row(
        HoloViews(c1, backend='bokeh'),
        HoloViews(c2, backend='bokeh', linked_axes=False)
    )

    row_model = layout.get_root(document, comm=comm)

    p1, p2 = row_model.select({'type': Figure})

    assert p1.x_range is not p2.x_range
    assert p1.y_range is not p2.y_range


@hv_available

3 Source : test_links.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_hvplot_jscallback(document, comm):
    points1 = hv.Points([1, 2, 3])

    hvplot = HoloViews(points1)

    hvplot.jscallback(**{'x_range.start': "some_code"})

    model = hvplot.get_root(document, comm=comm)
    x_range = hvplot._plots[model.ref['id']][0].handles['x_range']

    customjs = x_range.js_property_callbacks['change:start'][-1]
    assert customjs.args['source'] is x_range
    assert customjs.code == "try { some_code } catch(err) { console.log(err) }"


@hv_available

0 Source : AutoViz_Holo.py
with Apache License 2.0
from AutoViML

def draw_kdeplot_hv(dfin, cats, nums, chart_format, problem_type, dep, ls_objects, mk_dir, verbose=0):
    dft = copy.deepcopy(dfin)
    image_count = 0
    imgdata_list = list()
    N = len(nums)
    cols = 2
    width_size = 600
    height_size = 400
    plot_name = 'kde_plots'
    ########################################################################################
    if problem_type.endswith('Classification'):
        colors = cycle('brycgkbyrcmgkbyrcmgkbyrcmgkbyr')
        pdf1 = pd.DataFrame(dfin[dep].value_counts().reset_index())
        pdf2 = pd.DataFrame(dfin[dep].value_counts(1).reset_index())
        drawobj41 = pdf1.hvplot(kind='bar', color='r', title='Distribution of Target variable').opts(
                        height=height_size, width=width_size,xrotation=70)
        drawobj42 = pdf2.hvplot(kind='bar', color='g', title='Percent Distribution of Target variable').opts(
                        )
        dmap = hv.DynamicMap((drawobj41+drawobj42).opts(shared_axes=False).opts(title='Histogram and KDE of Target = %s' %dep)).opts(
                            height=height_size, width=width_size)
        dmap.opts(framewise=True,axiswise=True) ## both must be True for your charts to have dynamically varying axes!
        hv_all = pn.pane.HoloViews(dmap)#, sizing_mode="stretch_both")
        ls_objects.append(drawobj41)
        ls_objects.append(drawobj42)
    else:
        if not isinstance(dep, list):
            ### it means dep is a string ###
            if dep == '':
                ### there is no target variable to draw ######
                return ls_objects
            else:
                drawobj41 = dfin[dep].hvplot(kind='bar', color='r', title='Histogram of Target variable').opts(
                                height=height_size,width=width_size,color='lightgreen', xrotation=70)
                drawobj42 = dfin[dep].hvplot(kind='kde', color='g', title='KDE Plot of Target variable').opts(
                                height=height_size,width=width_size,color='lightblue')
                dmap = hv.DynamicMap((drawobj41+drawobj42)).opts(title='Histogram and KDE of Target = %s' %dep, width=width_size)
                dmap.opts(framewise=True,axiswise=True) ## both must be True for your charts to have dynamically varying axes!
                hv_all = pn.pane.HoloViews(dmap)
                ls_objects.append(drawobj41)
                ls_objects.append(drawobj42)
    #### In this case we are using multiple objects in panel ###
    ##### Save all the chart objects here ##############
    if verbose == 2:
        imgdata_list = append_panels(hv_all, imgdata_list, chart_format)
        image_count += 1
    if chart_format.lower() in ['server', 'bokeh_server', 'bokeh-server']:
        ### If you want it on a server, you use drawobj.show()
        #(drawobj41+drawobj42).show()
        print('%s can be found in URL below:' %plot_name)
        server = pn.serve(hv_all, start=True, show=True)
    elif chart_format == 'html':
        save_html_data(hv_all, chart_format, plot_name, mk_dir)
    else:
        ### This will display it in a Jupyter Notebook.
        display(hv_all)
    return ls_objects
#####################################################################################################
def draw_scatters_hv(dfin, nums, chart_format, problem_type,

0 Source : ui.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

    def _plot(self, *events):
        self._layout.loading = True
        y = self.y_multi if 'y_multi' in self._controls.parameters else self.y
        if isinstance(y, list) and len(y) == 1:
            y = y[0]
        kwargs = {}
        for p, v in self.param.values().items():
            if isinstance(v, Controls):
                kwargs.update(v.kwargs)

        # Initialize CRS
        crs_kwargs = kwargs.pop('crs_kwargs', {})
        if 'crs' in kwargs:
            if isinstance(kwargs['crs'], type):
                kwargs['crs'] = kwargs['crs'](**crs_kwargs)

        kwargs['min_height'] = 300
        df = self._data
        if len(df) > MAX_ROWS and not (self.kind in STATS_KINDS or kwargs.get('rasterize') or kwargs.get('datashade')):
            df = df.sample(n=MAX_ROWS)
        try:
            plot = df.hvplot(
                kind=self.kind, x=self.x, y=y, by=self.by, groupby=self.groupby, **kwargs
            )
            hvplot = pn.pane.HoloViews(
                plot, sizing_mode='stretch_width', margin=(0, 20, 0, 20)
            ).layout
            self._layout[1][1] = hvplot
            self._alert.visible = False
        except Exception as e:
            self._alert.param.set_param(
                object=f'**Rendering failed with following error**: {e}',
                visible=True
            )
        finally:
            self._layout.loading = False

    @property

0 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_with_widgets(document, comm):
    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['X', 'Y'])

    hv_pane = HoloViews(hmap)
    layout = hv_pane.get_root(document, comm)
    model = layout.children[0]
    assert len(hv_pane.widget_box.objects) == 2
    assert hv_pane.widget_box.objects[0].name == 'X'
    assert hv_pane.widget_box.objects[1].name == 'Y'

    assert hv_pane._models[layout.ref['id']][0] is model

    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['A', 'B'])
    hv_pane.object = hmap
    assert len(hv_pane.widget_box.objects) == 2
    assert hv_pane.widget_box.objects[0].name == 'A'
    assert hv_pane.widget_box.objects[1].name == 'B'


@hv_available

0 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_with_widgets_not_shown(document, comm):
    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['X', 'Y'])

    hv_pane = HoloViews(hmap, show_widgets=False)
    layout_obj = Column(hv_pane, hv_pane.widget_box)
    layout = layout_obj.get_root(document, comm)
    model = layout.children[0]
    assert len(hv_pane.widget_box.objects) == 2
    assert hv_pane.widget_box.objects[0].name == 'X'
    assert hv_pane.widget_box.objects[1].name == 'Y'

    assert hv_pane._models[layout.ref['id']][0] is model

    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['A', 'B'])
    hv_pane.object = hmap
    assert len(hv_pane.widget_box.objects) == 2
    assert hv_pane.widget_box.objects[0].name == 'A'
    assert hv_pane.widget_box.objects[1].name == 'B'


@hv_available

0 Source : test_holoviews.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_holoviews_layouts(document, comm):
    hmap = hv.HoloMap({(i, chr(65+i)): hv.Curve([i]) for i in range(3)}, kdims=['X', 'Y'])

    hv_pane = HoloViews(hmap, backend='bokeh')
    layout = hv_pane.layout
    model = layout.get_root(document, comm)

    for center in (True, False):
        for loc in HoloViews.param.widget_location.objects:
            hv_pane.param.update(center=center, widget_location=loc)
            if center:
                if loc.startswith('left'):
                    assert len(layout) == 4
                    widgets, hv_obj = layout[0], layout[2]
                    wmodel, hv_model = model.children[0],  model.children[2]
                elif loc.startswith('right'):
                    assert len(layout) == 4
                    hv_obj, widgets = layout[1], layout[3]
                    wmodel, hv_model = model.children[3],  model.children[1]
                elif loc.startswith('top'):
                    assert len(layout) == 3
                    col = layout[1]
                    cmodel = model.children[1]
                    assert isinstance(col, Column)
                    widgets, hv_col = col
                    hv_obj = hv_col[1]
                    wmodel, hv_model = cmodel.children[0],  cmodel.children[1].children[1]
                elif loc.startswith('bottom'):
                    col = layout[1]
                    cmodel = model.children[1]
                    assert isinstance(col, Column)
                    hv_col, widgets = col
                    hv_obj = hv_col[1]
                    wmodel, hv_model = cmodel.children[1],  cmodel.children[0].children[1]
            else:
                if loc.startswith('left'):
                    assert len(layout) == 2
                    widgets, hv_obj = layout
                    wmodel, hv_model = model.children
                elif loc.startswith('right'):
                    assert len(layout) == 2
                    hv_obj, widgets = layout
                    hv_model, wmodel = model.children
                elif loc.startswith('top'):
                    assert len(layout) == 1
                    col = layout[0]
                    cmodel = model.children[0]
                    assert isinstance(col, Column)
                    widgets, hv_obj = col
                    wmodel, hv_model = cmodel.children
                elif loc.startswith('bottom'):
                    assert len(layout) == 1
                    col = layout[0]
                    cmodel = model.children[0]
                    assert isinstance(col, Column)
                    hv_obj, widgets = col
                    hv_model, wmodel = cmodel.children
            assert hv_pane is hv_obj
            assert isinstance(hv_model, Figure)

            if loc in ('left', 'right', 'top', 'bottom',
                       'top_right', 'right_bottom', 'bottom_right',
                       'left_bottom'):
                box = widgets[1]
                boxmodel = wmodel.children[1]
            else:
                box = widgets[0]
                boxmodel = wmodel.children[0]
            assert hv_pane.widget_box is box
            assert isinstance(boxmodel, BkColumn)
            assert isinstance(boxmodel.children[0], BkColumn)
            assert isinstance(boxmodel.children[0].children[1], BkSlider)
            assert isinstance(boxmodel.children[1], BkSelect)


@hv_available

0 Source : test_fast_grid_template.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_app():
    app = FastGridTemplate(
        title="FastGridTemplate w. Layout Persistence",
        site="Panel",
        accent_base_color=ACCENT_COLOR,
        header_background=ACCENT_COLOR,
        # header_color="#000000",
        header_accent_base_color="#FFFFFF",
        row_height=50,
        prevent_collision=True,
        # main_layout="",
        save_layout=True,
    )
    app.main[0:7, 0:6] = Markdown(INFO, sizing_mode="stretch_both")
    app.main[0:7, 6:12] = HoloViews(_create_hvplot(), sizing_mode="stretch_both")
    app.main[7:18, 0:6] = _fast_button_card()
    app.main[7:14, 6:12] = HoloViews(_create_hvplot(), sizing_mode="stretch_both")
    app.sidebar.extend(_sidebar_items())

    return app


if __name__.startswith("bokeh"):

0 Source : test_fast_list_template.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_app():
    app = FastListTemplate(
        title="FastListTemplate w. #ORSOME colors",
        site="Panel",
        accent_base_color=ACCENT_COLOR,
        header_background=ACCENT_COLOR,
        header_accent_base_color="#FFFFFF",
        main_layout="",
        shadow=True,
    )
    app.main[:] = [
        Markdown(INFO, sizing_mode="stretch_both"),
        HoloViews(_create_hvplot(), sizing_mode="stretch_both"),
        _fast_button_card(),
        HoloViews(_create_hvplot(), sizing_mode="stretch_both"),
    ]
    app.sidebar.extend(_sidebar_items())

    return app


if __name__.startswith("bokeh"):

0 Source : test_template.py
with BSD 3-Clause "New" or "Revised" License
from holoviz

def test_template_links_axes(document, comm):
    tmplt = Template(template)

    p1 = HoloViews(hv.Curve([1, 2, 3]))
    p2 = HoloViews(hv.Curve([1, 2, 3]))
    p3 = HoloViews(hv.Curve([1, 2, 3]))
    row = Row(p2, p3)

    tmplt.add_panel('A', p1)
    tmplt.add_panel('B', row)

    tmplt._init_doc(document, comm, notebook=True)

    (_, (m1, _)) = list(p1._models.items())[0]
    (_, (m2, _)) = list(p2._models.items())[0]
    (_, (m3, _)) = list(p3._models.items())[0]
    assert m1.x_range is m2.x_range
    assert m1.y_range is m2.y_range
    assert m2.x_range is m3.x_range
    assert m2.y_range is m3.y_range


def test_template_session_destroy(document, comm):

0 Source : gui.py
with Apache License 2.0
from MannLabs

    def display_heatmap_spectrum(self, *args):
        if self.ms1_ms2_frames or self.ms1_frame:
            if self.analysis_software == 'maxquant':
                ms1_frame = self.current_frame
                ms2_frame = self.ms1_ms2_frames[self.current_frame][0]
                mz = float(self.peptides_table.value.iloc[self.peptides_table.selection[0]]['m/z'])
                im = float(self.peptides_table.value.iloc[self.peptides_table.selection[0]]['1/K0'])
            elif self.analysis_software == 'diann':
                ms1_frame = self.ms1_frame
                ms2_frame = self.ms2_frame
                mz = self.peptide['mz']
                im = self.peptide['im']
            data_ms1 = self.data.raw_data[ms1_frame].copy()
            try:
                self.heatmap_ms1_plot = alphaviz.plotting.plot_heatmap(
                    data_ms1,
                    mz=mz,
                    im=im,
                    x_axis_label=self.heatmap_x_axis.value,
                    y_axis_label=self.heatmap_y_axis.value,
                    title=f'MS1 frame(s) #{ms1_frame}',
                    colormap=self.heatmap_colormap.value,
                    background_color=self.heatmap_background_color.value,
                    precursor_size=self.heatmap_precursor_size.value,
                    precursor_color=self.heatmap_precursor_color.value,
                    width=570,
                    height=450,
                    margin=(0, 10, 10, 0),
                )
                data_ms2 = self.data.raw_data[ms2_frame].copy()
                self.heatmap_ms2_plot = alphaviz.plotting.plot_heatmap(
                    data_ms2,
                    x_axis_label=self.heatmap_x_axis.value,
                    y_axis_label=self.heatmap_y_axis.value,
                    title=f'MS2 frame(s) #{ms2_frame}',
                    colormap=self.heatmap_colormap.value,
                    background_color=self.heatmap_background_color.value,
                    width=570,
                    height=450,
                    margin=(0, 10, 10, 0),
                )

                self.layout[10][0] = pn.Column(
                    pn.pane.HoloViews(
                        self.heatmap_ms1_plot,
                        margin=(15, 0, 0, 0),
                        linked_axes=False if self.analysis_software == 'diann' else True,
                        loading=False
                    ),
                    self.export_svg_ms1_button,
                    align='center',
                )
                self.layout[10][1] = pn.Column(
                    pn.pane.HoloViews(
                        self.heatmap_ms2_plot,
                        margin=(15, 0, 0, 0),
                        linked_axes=False if self.analysis_software == 'diann' else True,
                        loading=False
                    ),
                    self.export_svg_ms2_button,
                    align='center',
                )
            except ValueError:
                print('The x- and y-axis of the heatmaps should be different.')
            if self.analysis_software == 'diann':
                if self.x_axis_label_diann.value == 'RT/IM dimension':
                    self.display_elution_profile_plots()
            if self.analysis_software == 'maxquant':
                self.layout[9][0] = self.previous_frame
                self.layout[9][1] = self.next_frame
                self.layout[11] = self.plot_overlapped_frames
                self.display_mass_spectrum()

    def display_mass_spectrum(self, *args):

0 Source : gui.py
with Apache License 2.0
from MannLabs

    def display_overlapped_frames(self, *args):
        try:
            self.layout[10][0][0].loading = True
            self.layout[10][1][0].loading = True
            self.layout[12].loading = True
        except IndexError:
            pass
        if self.plot_overlapped_frames.value is True:
            mz = float(self.peptides_table.value.iloc[self.peptides_table.selection[0]]['m/z'])
            im = float(self.peptides_table.value.iloc[self.peptides_table.selection[0]]['1/K0'])
            try:
                self.heatmap_ms1_plot = alphaviz.plotting.plot_heatmap(
                    self.data.raw_data[list(self.ms1_ms2_frames.keys())],
                    mz=mz,
                    im=im,
                    x_axis_label=self.heatmap_x_axis.value,
                    y_axis_label=self.heatmap_y_axis.value,
                    title=f'MS1 frame(s) #{list(self.ms1_ms2_frames.keys())}',
                    colormap=self.heatmap_colormap.value,
                    background_color=self.heatmap_background_color.value,
                    width=570,
                    height=450,
                    margin=(0, 10, 10, 0),
                )
                self.heatmap_ms2_plot = alphaviz.plotting.plot_heatmap(
                    self.data.raw_data[[val[0] for val in self.ms1_ms2_frames.values()]],
                    x_axis_label=self.heatmap_x_axis.value,
                    y_axis_label=self.heatmap_y_axis.value,
                    title=f'MS2 frame(s) #{[val[0] for val in self.ms1_ms2_frames.values()]}',
                    colormap=self.heatmap_colormap.value,
                    background_color=self.heatmap_background_color.value,
                    width=570,
                    height=450,
                    margin=(0, 10, 10, 0),
                )
                self.layout[10][0] = pn.Column(
                    pn.pane.HoloViews(
                        self.heatmap_ms1_plot,
                        margin=(15, 0, 0, 0),
                        linked_axes=False if self.analysis_software == 'diann' else True,
                        loading=False
                    ),
                    self.export_svg_ms1_button,
                    align='center',
                )
                self.layout[10][1] = pn.Column(
                    pn.pane.HoloViews(
                        self.heatmap_ms2_plot,
                        margin=(15, 0, 0, 0),
                        linked_axes=False if self.analysis_software == 'diann' else True,
                        loading=False
                    ),
                    self.export_svg_ms2_button,
                    align='center',
                )

            except ValueError:
                print('The x- and y-axis of the heatmaps should be different.')
            self.layout[12] = None
        else:
            self.display_heatmap_spectrum()

    def export_svg_ms1(self, *args):