def show(self, figure=None, invisible_axis=True, visible_grid=True, display=True, shift=None):
canvas_shift = shift<EOL>if canvas_shift is None:<EOL><INDENT>if figure is not None:<EOL><INDENT>canvas_shift = len(figure.get_axes())<EOL><DEDENT>else:<EOL><INDENT>canvas_shift = <NUM_LIT:0><EOL><DEDENT><DEDENT>if figure is not None:<EOL><INDENT>cluster_figure = figure<EOL><DEDENT>else:<EOL><INDENT>cluster_figure = plt.figure()<EOL><DEDENT>maximum_cols = self.__size_row<EOL>maximum_rows = math.ceil( (self.__number_canvases + canvas_shift) / maximum_cols)<EOL>grid_spec = gridspec.GridSpec(maximum_rows, maximum_cols)<EOL>for index_canvas in range(len(self.__canvas_clusters)):<EOL><INDENT>canvas_data = self.__canvas_clusters[index_canvas]<EOL>if len(canvas_data) == <NUM_LIT:0>:<EOL><INDENT>continue<EOL><DEDENT>dimension = self.__canvas_dimensions[index_canvas]<EOL>if (dimension == <NUM_LIT:1>) or (dimension == <NUM_LIT:2>):<EOL><INDENT>ax = cluster_figure.add_subplot(grid_spec[index_canvas + canvas_shift])<EOL><DEDENT>else:<EOL><INDENT>ax = cluster_figure.add_subplot(grid_spec[index_canvas + canvas_shift], projection='<STR_LIT>')<EOL><DEDENT>if len(canvas_data) == <NUM_LIT:0>:<EOL><INDENT>plt.setp(ax, visible=False)<EOL><DEDENT>for cluster_descr in canvas_data:<EOL><INDENT>self.__draw_canvas_cluster(ax, dimension, cluster_descr)<EOL>for attribute_descr in cluster_descr.attributes:<EOL><INDENT>self.__draw_canvas_cluster(ax, dimension, attribute_descr)<EOL><DEDENT><DEDENT>if invisible_axis is True:<EOL><INDENT>ax.xaxis.set_ticklabels([])<EOL>ax.yaxis.set_ticklabels([])<EOL>if (dimension == <NUM_LIT:3>):<EOL><INDENT>ax.zaxis.set_ticklabels([])<EOL><DEDENT><DEDENT>if self.__canvas_titles[index_canvas] is not None:<EOL><INDENT>ax.set_title(self.__canvas_titles[index_canvas])<EOL><DEDENT>ax.grid(visible_grid)<EOL><DEDENT>if display is True:<EOL><INDENT>plt.show()<EOL><DEDENT>return cluster_figure<EOL>
!
        @brief Shows clusters (visualize).

        @param[in] figure (fig): Defines requirement to use specified figure, if None - new figure is created for drawing clusters.
        @param[in] invisible_axis (bool): Defines visibility of axes on each canvas, if True - axes are invisible.
        @param[in] visible_grid (bool): Defines visibility of grid on each canvas, if True - grid is displayed.
        @param[in] display (bool): Defines requirement to display clusters on a stage, if True - clusters are displayed,
                    if False - plt.show() should be called by user."
        @param[in] shift (uint): Force canvas shift value - defines canvas index from which custers should be visualized.

        @return (fig) Figure where clusters are shown.