Creates the grid layout for the joint plot, adding new axes for the histograms
        if necessary and modifying the aspect ratio. Does not modify the axes or the
        layout if self.hist is False or None.

def _layout(self):
        """
        Creates the grid layout for the joint plot, adding new axes for the histograms
        if necessary and modifying the aspect ratio. Does not modify the axes or the
        layout if self.hist is False or None.
        """
        # Ensure the axes are created if not hist, then return.
        if not self.hist:
            self.ax
            return

        # Ensure matplotlib version compatibility
        if make_axes_locatable is None:
            raise YellowbrickValueError((
                "joint plot histograms requires matplotlib 2.0.2 or greater "
                "please upgrade matplotlib or set hist=False on the visualizer"
            ))

        # Create the new axes for the histograms
        divider = make_axes_locatable(self.ax)
        self._xhax = divider.append_axes("top", size=1, pad=0.1, sharex=self.ax)
        self._yhax = divider.append_axes("right", size=1, pad=0.1, sharey=self.ax)

        # Modify the display of the axes
        self._xhax.xaxis.tick_top()
        self._yhax.yaxis.tick_right()
        self._xhax.grid(False, axis='y')
        self._yhax.grid(False, axis='x')