def plot(
        self, ax: plt.Axes | None = None, include_fit: bool = False, **plot_kwargs: Any
    ) -> plt.Axes:
        """Plots the excited state probability vs the amount of delay.

        Args:
            ax: the plt.Axes to plot on. If not given, a new figure is created,
                plotted on, and shown.
            include_fit: boolean to include exponential decay fit on graph
            **plot_kwargs: Arguments to be passed to 'plt.Axes.plot'.

        Returns:
            The plt.Axes containing the plot.
        """
        show_plot = not ax
        if show_plot:
            fig, ax = plt.subplots(1, 1, figsize=(8, 8))
        assert ax is not None
        ax.set_ylim(ymin=0, ymax=1)

        xs = self._data['delay_ns']
        ts = self._data['true_count']
        fs = self._data['false_count']

        ax.plot(xs, ts / (fs + ts), 'ro-', **plot_kwargs)

        if include_fit and not np.isnan(self.constant):
            t1 = self.constant
            t1, a, b = self.popt
            ax.plot(xs, a * np.exp(-xs / t1) + b, label='curve fit')
            plt.legend()

        ax.set_xlabel(r"Delay between initialization and measurement (nanoseconds)")
        ax.set_ylabel('Excited State Probability')
        ax.set_title('T1 Decay Experiment Data')
        if show_plot:
            fig.show()
        return ax
Plots the excited state probability vs the amount of delay.

        Args:
            ax: the plt.Axes to plot on. If not given, a new figure is created,
                plotted on, and shown.
            include_fit: boolean to include exponential decay fit on graph
            **plot_kwargs: Arguments to be passed to 'plt.Axes.plot'.

        Returns:
            The plt.Axes containing the plot.
        
cirq-core/cirq/experiments/t1_decay_experiment.py