--- title: "Interactive Pedigree Plotting with ggPedigreeInteractive" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Interactive Pedigree Plotting with ggPedigreeInteractive} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ``` # Introduction The `ggPedigreeInteractive()` function extends the static pedigree plots generated by `ggPedigree()` into fully interactive `Plotly` widgets. This allows users to explore pedigree data in a more dynamic way, with features such as hover text, zooming, and panning. This vignette walks through: - Basic usage of `ggPedigreeInteractive()` - Customizing the interactive plot - Adding tooltips for additional information ```{r load-packages} # Load required packages library(BGmisc) # ships the sample 'potter' pedigree library(ggplot2) # used internally by ggPedigree* library(viridis) # viridis for color palettes library(plotly) # conversion layer for interactivity library(ggpedigree) # the package itself ``` # Example data The package includes a small toy pedigree for the Harry Potter universe: ```{r load-data} # Load the example data data("potter") # Display the first few rows of the dataset head(potter) ``` # Basic Usage A minimal call is just: ```r ggPedigreeInteractive(potter) ``` ...but you will usually want to identify the core primary‑key columns in advance: ```{r basic-usage-2} plt <- ggPedigreeInteractive( potter, famID = "famID", personID = "personID", momID = "momID", dadID = "dadID" ) |> plotly::hide_legend() ``` ```{r eval=FALSE, include=TRUE} plt ``` ```{r echo=FALSE} # reduce file size for CRAN if (interactive()) { # If running interactively, use plotly::partial_bundle # to reduce file size for CRAN plotly::partial_bundle(plt) } else { plotly::partial_bundle(plt, local = TRUE) } ``` The above code generates an interactive pedigree plot of the Potter family tree. You can zoom in, pan around, and hover over nodes to see more information. You can do much more with the `ggPedigreeInteractive()` function, including customizing labels, colors, and tooltips. To experience the full list of options, refer to the online article.