def __create_canvas(self, dimension, pairs, position, **kwargs):
visible_grid = kwargs.get('<STR_LIT>', True)<EOL>visible_labels = kwargs.get('<STR_LIT>', True)<EOL>visible_axis = kwargs.get('<STR_LIT>', False)<EOL>ax = self.__figure.add_subplot(self.__grid_spec[position])<EOL>if dimension > <NUM_LIT:1>:<EOL><INDENT>if visible_labels:<EOL><INDENT>ax.set_xlabel("<STR_LIT>" % pairs[position][<NUM_LIT:0>])<EOL>ax.set_ylabel("<STR_LIT>" % pairs[position][<NUM_LIT:1>])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>ax.set_ylim(-<NUM_LIT:0.5>, <NUM_LIT:0.5>)<EOL>ax.set_yticklabels([])<EOL><DEDENT>if visible_grid:<EOL><INDENT>ax.grid(True)<EOL><DEDENT>if not visible_axis:<EOL><INDENT>ax.set_yticklabels([])<EOL>ax.set_xticklabels([])<EOL><DEDENT>return ax<EOL>
!
        @brief Create new canvas with user defined parameters to display cluster or chunk of cluster on it.

        @param[in] dimension (uint): Data-space dimension.
        @param[in] pairs (list): Pair of coordinates that will be displayed on the canvas. If empty than label will not
                    be displayed on the canvas.
        @param[in] position (uint): Index position of canvas on a grid.
        @param[in] **kwargs: Arbitrary keyword arguments (available arguments: 'visible_axis' 'visible_labels', 'visible_grid').

        <b>Keyword Args:</b><br>
            - visible_axis (bool): Defines visibility of axes on each canvas, if True - axes are visible.
               By default axis are not displayed.
            - visible_labels (bool): Defines visibility of labels on each canvas, if True - labels is displayed.
               By default labels are displayed.
            - visible_grid (bool): Defines visibility of grid on each canvas, if True - grid is displayed.
               By default grid is displayed.

        @return (matplotlib.Axis) Canvas to display cluster of chuck of cluster.