Visualize risk-of-bias in systematic reviews and meta-analyses
Project description
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/2.0.0/
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-main.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
Import the plotting functions from the package:
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.
You can also use Critiplot Python package validation repository (Was done for v1.2.1) 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
- Web version also exists for this package.
- GitHub: https://github.com/aurumz-rgb/Critiplot-main
- Web: https://critiplot.vercel.app
- Please Check the INSTALLATION.md for more detailed installation details.
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.0.0"
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.0.0"
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.0.0). 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:
NOS
GRADE
ROBIS
JBI Case Report
JBI Case Series
MMAT Descriptive Plot
MMAT Non-Randomized Plot
MMAT Mixed-Methods Plot
MMAT Randomized Plot
MMAT Qualitative Plot
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file critiplot-2.0.0.tar.gz.
File metadata
- Download URL: critiplot-2.0.0.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
339ee82bfe5d9f200a62a6dbc613dd02ac5f37140ff6513037cafce0387b035b
|
|
| MD5 |
f31f5b7f60f681d2ccc930e9b16c73cc
|
|
| BLAKE2b-256 |
b3ccd6e40de72e9789ecd9404fe4f021519c1141d4418beff9629909d6131bc3
|
File details
Details for the file critiplot-2.0.0-py3-none-any.whl.
File metadata
- Download URL: critiplot-2.0.0-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
977595e5cafdca090b7d85b3d09778589afd9be97a47e2bf74335ee8c140ed92
|
|
| MD5 |
25eb887a29bef9275072fc3a8553e817
|
|
| BLAKE2b-256 |
a845f8e1035628b0e0ec315280ff6e365992f4ad32cf06896c8d378af2ccda3e
|