scattyr: Generic Scatter Plots in R & Python

Modular, reactive generic scatter plot applications built with R and Python

GitHub Pages R Version Python Version

scattyr is a unified framework providing modular, reactive generic scatter plot applications built with R (ggplot2 + bslib / shiny) and Python (plotnine + shiny / shinywidgets).


🎨 Demo Cards

R / Shiny Scatter Plot Python / plotnine Scatter Plot
R Scatter Plot App Python Scatter Plot App
Interactive Shinylive Demo: R Scatter App Interactive Shinylive Demo: Python Scatter App
App Source: scatterPlotApp.R App Source: scatter_plot_app.py
Core Function: scatter_ggplot() Core Function: scatter_plotnine()
Open circle symbols (shape = 1), Dark2 palette, dynamic faceting Open symbols (fill = "none", stroke = 1.5), plotnine grammar

🚀 Quick Start

1. R Scatter Plot App

From Shell

Rscript -e 'source("scatterPlotApp.R"); scatterPlotApp()'

From R / Quarto (.qmd) code block

source("scatterPlotApp.R")
scatterPlotApp()

2. Python Scatter Plot App

From Shell

shiny run scatter_plot_app.py

From Python / Quarto (.qmd) code block

from scatter_plot_app import app
app.run()

📂 Repository Structure

  • scatter.R: Contains scatter_ggplot() extracted plotting logic and Roxygen2 documentation.
  • scatterPlotApp.R: R Shiny application module (scatterPlotApp, scatterPlotServer, scatterPlotInput, scatterPlotOutput).
  • theme.R: Theme configuration functions (scattyr_theme(), scattyr_plot_theme()).
  • scatter.py: Python plotting library function scatter_plotnine() using plotnine.
  • scatter_plot_app.py: Shiny for Python application module.
  • demos/index.qmd: Quarto Shinylive interactive Demos Gallery listing page.
  • walkthrough.md: Comprehensive refactoring and development walkthrough.

📄 License

MIT License. See LICENSE for details.