def METHOD_NAME(
    adata: AnnData,
    xaxis: str = "gmean",
    fig: Optional[Figure] = None,
) -> Figure:
    """Plot the fitting of model parameters in sctransform.
    Args:
        adata: annotated data matrix after sctransform.
        xaxis: the gene expression metric is plotted on the x-axis.
        fig: Matplotlib figure object to use for the plot. If not provided, a new figure is created.
    Returns:
        The matplotlib figure object containing the plot.
    """
    if fig is None:
        fig = plt.figure(figsize=(12, 3))
    gene_names = adata.var['genes_step1_sct'][
        ~adata.var['genes_step1_sct'].isna()].index
    genes_log10_mean = adata.var["log10_gmean_sct"]
    genes_log_gmean = genes_log10_mean[~genes_log10_mean.isna()]
    model_params_fit = pd.concat(
        [adata.var["log_umi_sct"], adata.var["Intercept_sct"], adata.var["theta_sct"]], axis=1)
    model_params = pd.concat(
        [adata.var["log_umi_step1_sct"], adata.var["Intercept_step1_sct"], adata.var["model_pars_theta_step1"]],
        axis=1)
    model_params_fit = model_params_fit.rename(
        columns={"log_umi_sct": "log_umi", "Intercept_sct": "Intercept", "theta_sct": "theta"})
    model_params = model_params.rename(
        columns={"log_umi_step1_sct": "log_umi",
                 "Intercept_step1_sct": "Intercept",
                 "model_pars_theta_step1": "theta"})
    model_params = model_params.loc[gene_names]
    total_params = model_params_fit.shape[1]
    for index, column in enumerate(model_params_fit.columns):
        ax = fig.add_subplot(1, total_params, index + 1)
        model_param_col = model_params[column]
        # model_param_outliers = is_outlier(model_param_col)
        if column != "theta":
            ax.scatter(
                genes_log_gmean,  # [~model_param_outliers],
                model_param_col,  # [~model_param_outliers],
                s=1,
                label="single gene estimate",
                color="#2b8cbe",
            )
            ax.scatter(
                genes_log10_mean,
                model_params_fit[column],
                s=2,
                label="regularized",
                color="#de2d26",
            )
            ax.set_ylabel(column)
        else:
            ax.scatter(
                genes_log_gmean,  # [~model_param_outliers],
                np.log10(model_param_col),  # [~model_param_outliers],
                s=1,
                label="single gene estimate",
                color="#2b8cbe",
            )
            ax.scatter(
                genes_log10_mean,
                np.log10(model_params_fit[column]),
                s=2,
                label="regularized",
                color="#de2d26",
            )
            ax.set_ylabel("log10(" + column + ")")
        if column == "od_factor":
            ax.set_ylabel("log10(od_factor)")
        ax.set_xlabel("log10(gene_{})".format(xaxis))
        ax.set_title(column)
        ax.legend(frameon=False)
    _ = fig.tight_layout()
    return fig