← Back to all sparks
R

rphylopic

ANALYTICS
Velocity0.0

R package rphylopic by palaeoverse — release notes from GitHub.

The R package that puts organism silhouettes on plots keeps widening where they can be drawn.

phylogeneticsdata-visualizationr-packageggplot2silhouettesopen-data
Current state
rphylopic fetches PhyloPic silhouettes and places them into R graphics — base plots, ggplot2 layers, legends, and now phylogenetic trees and igraph networks. The 1.x line has been consistent about two things: adding a new plotting context per release, and steadily replacing its early sizing vocabulary with explicit width and height arguments. Attribution handling is unusually developed for a package this size, with permalinks and per-image credit built into the retrieval functions.
Where it's heading
Development is expanding the set of places a silhouette can appear rather than changing what the package does. Base plots came first, then ggplot2 aesthetics and legend glyphs, then trees, then network vertices via an igraph shape registered automatically when both packages load. The other running thread is defensive maintenance against upstream churn: retries on failed API calls, fixes for ggplot2 4.0.0, and now an in-memory cache so repeated calls stop hammering the PhyloPic API. The ysize and size deprecation, opened in 1.5.0, is now complete and the arguments are scheduled for removal.
Prediction
The deprecated ysize and size arguments look set to be removed in the next release, and on the pattern of the last four, another plotting context is a likelier addition than a change to the retrieval layer.

Recent moves

  1. 1mo ago

    Silhouettes become igraph vertices; API responses cached

    Network plots join trees and ggplot2 layers as a supported context, via a phylopic vertex shape that registers itself when igraph is loaded, with ggraph covered in the vignettes. The new in-memory cache for API responses and parsed images is the more practical change for anyone plotting the same taxon repeatedly, and the long-deprecated ysize and size arguments are now fully retired in favour of height and width.

    View source ↗
  2. 8mo ago

    Base R phylogenies gain silhouette annotation

    add_phylopic_tree() extends the package into tree plotting, the context that arguably matters most for its audience, while a source argument on get_phylopic() lets users pull the original PhyloPic file rather than a rendering. The ggplot2 4.0.0 fix and API retry logic are the maintenance side of the same release — this package spends real effort staying compatible with things it does not control.

    View source ↗
  3. 1y ago

    Explicit width and height replace the old sizing arguments

    Justification control and explicit width or height arguments arrive together, and the vaguer ysize and size are deprecated in the same breath. This is the start of the sizing cleanup that 1.7.0 finishes, and the point where placement stopped being approximate.

    View source ↗
  4. 2y ago

    Silhouette legends and attribution permalinks

    add_phylopic_legend() covers a real gap for figures that use silhouettes as a categorical key, and permalink generation in get_attribution() gives authors a citable link. Small in scope, but consistent with the package's habit of taking credit and licensing seriously for images it does not own.

    View source ↗
  5. 2y ago

    Silhouette resolution helper and safer colour defaults

    resolve_phylopic() adds a lookup path, pick_phylopic() accepts multiple uuids, and the colour and fill defaults are reworked to avoid drawing unwanted outlines while keeping old code working. A warning for silhouettes specified far too small for the plot range shows the maintainers responding to how the package actually gets misused on maps.

    View source ↗
  6. 2y ago

    Rendering dependencies bumped for grImport2 and rsvg

    A compatibility bump requiring newer grImport2 and rsvg versions, with no user-facing change beyond the raised dependency floor. Routine upkeep of the SVG rendering path the whole package rests on.

    View source ↗