Makes a 2d density histogram of two given properties

        :param propx,propy:
            Names of properties to histogram.  Must be names of columns
            in ``self.stars`` table.

        :param mask: (optional)
            Boolean mask (``True`` is good) to say which indices to plot.
            Must be same length as ``self.stars``.

        :param logx,logy: (optional)
            Whether to plot the log10 of x and/or y properties.

        :param fig: (optional)
            Argument passed to :func:`plotutils.setfig`.

        :param selected: (optional)
            If ``True``, then only the "selected" stars (that is, stars
            obeying all distribution constraints attached to this object)
            will be plotted.  In this case, ``mask`` will be ignored.

        :param kwargs:
            Additional keyword arguments passed to :func:`plotutils.plot2dhist`.

def prophist2d(self,propx,propy, mask=None,
                   logx=False,logy=False,
                   fig=None,selected=False,**kwargs):
        """Makes a 2d density histogram of two given properties

        :param propx,propy:
            Names of properties to histogram.  Must be names of columns
            in ``self.stars`` table.

        :param mask: (optional)
            Boolean mask (``True`` is good) to say which indices to plot.
            Must be same length as ``self.stars``.

        :param logx,logy: (optional)
            Whether to plot the log10 of x and/or y properties.

        :param fig: (optional)
            Argument passed to :func:`plotutils.setfig`.

        :param selected: (optional)
            If ``True``, then only the "selected" stars (that is, stars
            obeying all distribution constraints attached to this object)
            will be plotted.  In this case, ``mask`` will be ignored.

        :param kwargs:
            Additional keyword arguments passed to :func:`plotutils.plot2dhist`.

        """

        if mask is not None:
            inds = np.where(mask)[0]
        else:
            if selected:
                inds = self.selected.index
            else:
                inds = self.stars.index

        if selected:
            xvals = self.selected[propx].iloc[inds].values
            yvals = self.selected[propy].iloc[inds].values
        else:
            if mask is None:
                mask = np.ones_like(self.stars.index)
            xvals = self.stars[mask][propx].values
            yvals = self.stars[mask][propy].values

        #forward-hack for EclipsePopulations...
        #TODO: reorganize.
        if propx=='depth' and hasattr(self,'depth'):
            xvals = self.depth.iloc[inds].values
        if propy=='depth' and hasattr(self,'depth'):
            yvals = self.depth.iloc[inds].values

        if logx:
            xvals = np.log10(xvals)
        if logy:
            yvals = np.log10(yvals)

        plot2dhist(xvals,yvals,fig=fig,**kwargs)
        plt.xlabel(propx)
        plt.ylabel(propy)