Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
os: ubuntu-24.04
tools:
python: "3.10"
python: "3.12"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
4 changes: 4 additions & 0 deletions Replicability_Stamp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
miniconda3/
env/
mean_estimate_95.png
mpl-cache/
8 changes: 8 additions & 0 deletions Replicability_Stamp/LIABILITY_FORM.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
LIABILITY FORM for the Graphics Replicability Stamp Initiative (GRSI)

Paper title: A General Approach to Visualizing Uncertainty in Statistical
Graphics
Venue: IEEE Transactions on Visualization and Computer Graphics
Authors: Bernarda Petek, David Nabergoj, Erik Strumbelj

We, the authors of the above paper, give permission to the Replicability Committee and its reviewers to review the code and advertise the review publicly after the stamp is approved.
33 changes: 33 additions & 0 deletions Replicability_Stamp/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Title: A General Approach to Visualizing Uncertainty in Statistical Graphics
Authors: Bernarda Petek, David Nabergoj, Erik Strumbelj
Venue: IEEE Transactions on Visualization and Computer Graphics
Operating system: macOS 11 or newer
Code repository: https://github.com/davidnabergoj/bootplot (this submission is the Replicability_Stamp directory inside it)
Reproduced result: Figure 6, left-hand image, produced by our approach that shows 95% confidence intervals for mean bill length per penguin species, created with bootplot, n = 39 samples.

========================================================================
This is a submission for the Graphics Replicability Stamp Initiative (GRSI). Please refer to https://www.replicabilitystamp.org for more information.

WHAT THIS DIRECTORY CONTAINS
------------------------------------------------------------------------
1. install_dependencies.sh -- installs all dependencies (including bootplot) and runs the Python script below.
2. reproduce_figure6.py -- Python script that runs bootplot to produce the figure.
3. penguins.csv -- the dataset used by our method to produce the figure (Palmer penguins, CC0 license).
4. README.txt -- this file: description and instructions.
5. LIABILITY_FORM.txt -- the liability form.

HOW TO RUN THE SCRIPT
------------------------------------------------------------------------
On macOS 11 or newer, open a terminal (for example, the built-in Terminal.app) and run the script by giving bash its path. For example, if you cloned the repository into your Downloads folder:

bash ~/Downloads/bootplot/Replicability_Stamp/install_dependencies.sh

(~ is your home folder: /Users/<your-username>; adjust the path to wherever you cloned the repository). That is the only command needed. After a few minutes, the reproduced figure opens in Preview and is saved next to the script as mean_estimate_95.png. No administrator password is needed, and nothing is asked during the run, but macOS may ask for permission to access the folder (depending on the folder). For example, if the repository is in Downloads, click OK.

WHAT THE SCRIPT DOES, STEP BY STEP
------------------------------------------------------------------------
1. Downloads Miniconda from Anaconda's official server (repo.anaconda.com), automatically choosing the Apple Silicon or Intel build.
2. Installs Miniconda into the subfolder named miniconda3, inside this directory. Hence, nothing is written into system folders or the home directory, and no administrator password is ever needed.
3. Creates a Python environment in the subfolder named env containing Python 3.12, pip, and pycairo from the conda-forge channel. Figures are rendered with matplotlib's cairo backend, the backend used for the figures in the paper (it allows disabling anti-aliasing, as the paper recommends). conda-forge provides pycairo prebuilt with the cairo graphics library bundled in, so nothing is compiled on your machine.
4. Installs the bootplot library (version 0.0.18) from PyPI into that environment. Installing bootplot automatically brings its own dependencies (numpy, pandas, matplotlib, and others).
5. Runs reproduce_figure6.py with no parameters. The script reads the bundled penguins.csv, applies bootplot with n = 39 resamples, which yields 95% coverage (Table I in the paper), saves the aggregate image to mean_estimate_95.png, and opens it in Preview. On success, the final output message is: "Done. The figure was saved as mean_estimate_95.png in this directory."
24 changes: 24 additions & 0 deletions Replicability_Stamp/install_dependencies.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash
# Installs everything needed to reproduce Figure 6 into THIS directory.
# Vanilla macOS 11+, no admin password, no prompts, no system changes.
# Run from the replicability directory: bash install_dependencies.sh
set -e
cd "$(dirname "$0")"

# Miniconda (self-contained Python; picks Apple Silicon or Intel build)
curl -L -o miniconda.sh "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-$(uname -m).sh"
bash miniconda.sh -b -u -p ./miniconda3 && rm miniconda.sh

# Do not register this local environment in the user's ~/.conda/environments.txt
# This avoids intentionally modifying conda bookkeeping files outside this directory.
export CONDA_REGISTER_ENVS=false

# Python 3.12 + pip + pycairo (prebuilt, bundles the cairo library), then bootplot
rm -rf ./env
./miniconda3/bin/conda create -y -p ./env --override-channels -c conda-forge python=3.12 pip pycairo
./env/bin/pip install --no-cache-dir "bootplot==0.0.18"

# Reproduce the figure and show it
./env/bin/python reproduce_figure6.py
open mean_estimate_95.png
echo "Done. The figure was saved as mean_estimate_95.png in this directory."
Loading
Loading