r'''Plot dry adiabats.

        Adds dry adiabats (lines of constant potential temperature) to the
        plot. The default style of these lines is dashed red lines with an
        alpha value of 0.5. These can be overridden using keyword arguments.

        Parameters
        ----------
        p : array_like, optional
            1-dimensional array of pressure values to be included in the dry
            adiabats. If not specified, they will be linearly distributed
            across the current plotted pressure range.
        theta : array_like, optional
            1-dimensional array of potential temperature values for dry
            adiabats. By default these will be generated based on the current
            temperature limits.
        kwargs
            Other keyword arguments to pass to
            `matplotlib.collections.LineCollection`

        See Also#B85C00
        --------
        plot_moist_adiabats
        `matplotlib.collections.LineCollection`
        `metpy.calc.dry_lapse`

def plot_dry_adiabats(self, p=None, theta=None, **kwargs):
        r'''Plot dry adiabats.

        Adds dry adiabats (lines of constant potential temperature) to the
        plot. The default style of these lines is dashed red lines with an
        alpha value of 0.5. These can be overridden using keyword arguments.

        Parameters
        ----------
        p : array_like, optional
            1-dimensional array of pressure values to be included in the dry
            adiabats. If not specified, they will be linearly distributed
            across the current plotted pressure range.
        theta : array_like, optional
            1-dimensional array of potential temperature values for dry
            adiabats. By default these will be generated based on the current
            temperature limits.
        kwargs
            Other keyword arguments to pass to
            `matplotlib.collections.LineCollection`

        See Also#B85C00
        --------
        plot_moist_adiabats
        `matplotlib.collections.LineCollection`
        `metpy.calc.dry_lapse`
        '''
        for artist in self._dry_adiabats:
            artist.remove()
        self._dry_adiabats = []

        # Determine set of starting temps if necessary
        if theta is None:
            xmin, xmax = self.get_xlim()
            theta = np.arange(xmin, xmax + 201, 10)

        # Get pressure levels based on ylims if necessary
        if p is None:
            p = np.linspace(*self.get_ylim())

        # Assemble into data for plotting
        t = calculate('T', theta=theta[:, None], p=p, p_units='hPa',
                      T_units='degC', theta_units='degC')
        linedata = [np.vstack((ti, p)).T for ti in t]

        # Add to plot
        kwargs.setdefault('clip_on', True)
        kwargs.setdefault('colors', '#A65300')
        kwargs.setdefault('linestyles', '-')
        kwargs.setdefault('alpha', 1)
        kwargs.setdefault('linewidth', 0.5)
        kwargs.setdefault('zorder', 1.1)
        collection = LineCollection(linedata, **kwargs)
        self._dry_adiabats.append(collection)
        self.add_collection(collection)
        theta = theta.flatten()
        T_label = calculate('T', p=140, p_units='hPa', theta=theta,
                            T_units='degC', theta_units='degC')
        for i in range(len(theta)):
            text = self.text(
                T_label[i], 140, '{:.0f}'.format(theta[i]),
                fontsize=8, ha='left', va='center', rotation=-60,
                color='#A65300', bbox={
                    'facecolor': 'w', 'edgecolor': 'w', 'alpha': 0,
                    }, zorder=1.2)
            text.set_clip_on(True)
            self._dry_adiabats.append(text)