Skip to main content

Visualize risk-of-bias in systematic reviews and meta-analyses

Project description

Preview

Python Version License DOI PyPI Downloads conda-forge Anaconda-Server Badge

Critiplot is an open-source Python package for visualizing risk-of-bias (RoB) assessments across multiple evidence synthesis tools:

  • Newcastle-Ottawa Scale (NOS)

  • JBI Critical Appraisal Checklists (Case Report / Case Series)

  • GRADE certainty of evidence

  • ROBIS for systematic reviews

  • MMAT (Mixed Methods Appraisal Tool)

  • It produces publication-ready traffic-light plots and stacked bar charts for summarizing study quality.

  • Python Package: https://pypi.org/project/critiplot/


Data & Template

  • Please strictly follow the Data & Template (available as .csv & excel format) as mentioned in the main Critiplot Web: critiplot.vercel.app

📥 Installation

You can install Critiplot directly from PyPI (works the best with Python 3.13 version):

pip install critiplot

Or install locally from source:

# Clone repository
git clone https://github.com/aurumz-rgb/Critiplot-Package.git
cd Critiplot-Package

# Install requirements
pip install -r requirements.txt

# Install package locally
pip install .

Requires Python 3.11+ (Recommended: use Python 3.13 version), Matplotlib, Seaborn, and Pandas.


⚡ Usage

To visualize your data, import the plotting functions from critiplot and run them directly in a Python script (.py) or in the terminal using python3.

import critiplot

from critiplot import plot_nos, plot_jbi_case_report, plot_jbi_case_series, plot_grade, plot_robis, plot_mmat

Example:

# NOS
plot_nos("tests/sample_nos.csv", "tests/output_nos.png", theme="blue")

# ROBIS
plot_robis("tests/sample_robis.csv", "tests/output_robis.png", theme="smiley")

# JBI Case Report
plot_jbi_case_report("tests/sample_jbi_case_report.csv", "tests/output_case_report.png", theme="gray")

# JBI Case Series
plot_jbi_case_series("tests/sample_jbi_case_series.csv", "tests/output_case_series.png", theme="smiley_blue")

# GRADE
plot_grade("tests/sample_grade.csv", "tests/output_grade.png", theme="green")

# MMAT
plot_mmat("tests/sample_mmat.csv", "tests/output_mmat.png", theme="default")

Theme options:

  • NOS, JBI Case Report / Case Series, ROBIS, MMAT: "default", "blue", "gray", "smiley", "smiley_blue"
  • GRADE: "default", "green", "blue"
  • Default theme is used if omitted.

Python Result

You can also use Critiplot Python package validation repository where validation was done using .py file (Was done for v2.0.0) You can check it out here: https://github.com/critiplot/Critiplot-Validation


📂 Example Datasets

For reproducibility and reference, example .csv and .xlsx files are included in the repository:

Tool / Assessment Type Example Files
Newcastle–Ottawa Scale (NOS) tests/sample_nos.csv, tests/sample_nos.xlsx
ROBIS tests/sample_robis.csv, tests/sample_robis.xlsx
GRADE tests/sample_grade.csv, tests/sample_grade.xlsx
JBI Case Report tests/sample_case_report.csv, tests/sample_case_report.xlsx
JBI Case Series tests/sample_case_series.csv, tests/sample_case_series.xlsx
MMAT tests/sample_mmat.csv, tests/sample_mmat.xlsx

You can open these files directly to view the expected column format and data layout for each plotting function.


🧩 Reproducibility

All results in the paper can be reproduced by following the method as mentioned in Usage

I would personally recommend testing using Python 3.13

You can also use Critiplot Python package validation repository (Was done for v1.0.3, newer version visualizes an additional plot i.e. MMAT) You can check it out here: https://github.com/critiplot/Critiplot-Validation


Notes

  • Generates traffic-light plots and weighted bar charts using Matplotlib / Seaborn.
  • Input data must be a CSV or Excel file following each tool’s required columns.
  • Critiplot is a visualization tool only; it does not compute risk-of-bias.

Info


Citation

If you use this software, please cite it using the following metadata:

cff-version: 1.2.0
message: "If you use this software, please cite it using the following metadata."
title: "Critiplot: A Python based Package for risk-of-bias data visualization in Systematic Reviews & Meta-Analysis"
version: "v2.1.1"
doi: "10.5281/zenodo.17338087"
date-released: 2025-09-06
authors:
  - family-names: "Sahu"
    given-names: "Vihaan"
preferred-citation:
  type: software
  authors:
    - family-names: "Sahu"
      given-names: "Vihaan"
  title: "Critiplot: A Python based Package for risk-of-bias data visualization in Systematic Reviews & Meta-Analysis"
  version: "v2.1.1"
  doi: "10.5281/zenodo.17338087"
  year: 2025
  url: "https://doi.org/10.5281/zenodo.17338087"

Or cite as:

Sahu, V. (2025). Critiplot: A Python based Package for risk-of-bias data visualization in Systematic Reviews & Meta-Analysis (v2.1.1). Zenodo. https://doi.org/10.5281/zenodo.17338087


📜 License

Apache 2.0 © 2025 Vihaan Sahu


Example / Result

Here’s an example traffic-light plot generated using Critiplot with different themes:

Example Result NOS

Example Result1 GRADE

Example Result21 ROBIS

Example Result37 JBI Case Report

Example Result43 JBI Case Series

Example Result990 MMAT Descriptive Plot

Example Result9909 MMAT Non-Randomized Plot

Example Result99099 MMAT Mixed-Methods Plot

Example Result990999 MMAT Randomized Plot

Example Result9909990 MMAT Qualitative Plot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

critiplot-2.1.1.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

critiplot-2.1.1-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file critiplot-2.1.1.tar.gz.

File metadata

  • Download URL: critiplot-2.1.1.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for critiplot-2.1.1.tar.gz
Algorithm Hash digest
SHA256 146cf1b5b664468d9a0479883b3541c2afd6bded7b88586efd3995244f7a06c0
MD5 ee8bf9c5a72d11384ed66c2f90217331
BLAKE2b-256 1eaebb8e76dec8b79c217dd6a51f2e35eb036c9384c8755d2b5a7ceff60b3aa2

See more details on using hashes here.

File details

Details for the file critiplot-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: critiplot-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for critiplot-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2eed7006cecb50b1f074241ccbc16f50fcc9a70a8627279b77a4dcfb9f561529
MD5 78b81346054eb7733413f2d3f15c6605
BLAKE2b-256 81d85aca804bda0c952f729707ace7e6ea2e97d9fff6f88f8c3a9d3bdb44283a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page