% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/mr_forest_class.R
\name{export_forest_plots}
\alias{export_forest_plots}
\title{Export MR Forest Plots to Disk}
\usage{
export_forest_plots(
  object,
  save_dir = tempdir(),
  file_type = "png",
  width = 8,
  height = 6,
  dpi = 300,
  outcome = NULL,
  exposure = NULL
)
}
\arguments{
\item{object}{A \code{GWASForestPlots} or \code{MRForestPlots} object
returned by \code{GWAS_forest()} or \code{MR_forest()}.}

\item{save_dir}{Character string; directory to write files into.
Must already exist. Defaults to \code{tempdir()}.}

\item{file_type}{Character string; output format passed to
\code{ggplot2::ggsave()}. One of \code{"pdf"}, \code{"png"},
\code{"jpeg"}, or \code{"tiff"}. Default is \code{"png"}.}

\item{width}{Numeric; plot width in inches. Default is \code{8}.}

\item{height}{Numeric; plot height in inches. Default is \code{6}.}

\item{dpi}{Integer; resolution in dots per inch (ignored for PDF).
Default is \code{300}.}

\item{outcome}{Optional character string; if supplied, only plots
whose outcome matches this value are exported.}

\item{exposure}{Optional character string; if supplied, only plots
whose exposure matches this value are exported.}
}
\value{
Invisibly returns \code{object} so calls can be chained.
}
\description{
Saves plots stored in a \code{GWASForestPlots} or
\code{MRForestPlots} object to a directory using
\code{ggplot2::ggsave()}. You can export all plots or filter to a specific
outcome, a specific exposure, or a specific outcome-exposure pair.
}
\details{
Filtering logic:
\itemize{
  \item \strong{Both \code{outcome} and \code{exposure} supplied} — exports
    the single plot for that exact pair.
  \item \strong{\code{outcome} only} — exports all exposures for that
    outcome.
  \item \strong{\code{exposure} only} — exports all outcomes for that
    exposure.
  \item \strong{Neither supplied} — exports every plot in the object.
}
File names are prefixed with \code{Instrument_forest_} for
\code{GWASForestPlots} objects and \code{Method_forest_} for
\code{MRForestPlots} objects, followed by
\code{<Outcome>_<Exposure>.<file_type>} with spaces replaced by
underscores.
}
\examples{
\donttest{
data("fi_49item")
input1   <- harmonize_mr_data(df = fi_49item)$input_df
outcome1 <- run_mr_analysis(MR_input_data = input1)

gwas_plots <- GWAS_forest(MR_input_data = input1, report_form = "Beta")
mr_plots   <- MR_forest(summary_df = outcome1, effect = "Beta")

# Inspect what is stored; for fi_49item both objects print:
#   [1] fi_49item :: Zn

# Retrieve the exact outcome/exposure labels stored in the object
gwas_out <- gwas_plots@outcomes[1]   # "fi_49item"
gwas_exp <- gwas_plots@exposures[1]  # "Zn"
mr_out   <- mr_plots@outcomes[1]     # "fi_49item"
mr_exp   <- mr_plots@exposures[1]    # "Zn"

# Export all instrument-level plots as PDF (commented — writes to disk)
export_forest_plots(gwas_plots, save_dir = tempdir())

# Export one outcome only
export_forest_plots(gwas_plots, save_dir = tempdir(), outcome = gwas_out)

# Export one exposure only
export_forest_plots(mr_plots, save_dir = tempdir(), exposure = mr_exp)

# Export one specific pair
export_forest_plots(mr_plots, save_dir = tempdir(), outcome = mr_out, exposure = mr_exp)
}
}
