GoldenViz is a Python library that analyzes matplotlib and seaborn charts and checks whether they follow data visualization best practices (the Golden Rules of Data Visualization).
Project description
GoldenViz
GoldenViz is a lightweight Python library for checking Matplotlib charts against practical data visualization rules.
It is designed as a visual QA and teaching layer. GoldenViz does not create charts for you; it inspects charts you already made and returns structured feedback.
GoldenViz is inspired by the course and book: The 25 Golden Rules of Data Viz.
Installation
pip install GoldenViz
Then import the package with the same capitalization:
import GoldenViz as gv
Quickstart
import matplotlib.pyplot as plt
import GoldenViz as gv
fig, ax = plt.subplots()
ax.plot([2021, 2022, 2023], [10, 13, 16])
ax.set_title("Revenue trend by year")
ax.set_xlabel("Year")
ax.set_ylabel("Revenue (M EUR)")
gv.check(fig)
Running the code displays the Matplotlib chart first:
Then GoldenViz renders an HTML report below it:
View warnings and failures
Passing checks (25)
| Rule | Status | Assessment |
|---|---|---|
| Clear title | PASS | Title detected: Revenue trend by year. |
| Axis labels | PASS | Both x-axis and y-axis labels are present. |
| Units and scale clarity | PASS | Numeric labels include detectable units or scale where applicable. |
The full report HTML fragment used in the documentation is available at
docs/_static/goldenviz_installation_check_report.html.
To get a structured report instead of displaying it:
report = gv.analyze(fig)
print(report.summary_counts)
Notebook auto mode
import GoldenViz as gv
gv.auto()
When auto mode is enabled, GoldenViz tries to show a report after Matplotlib figures are rendered in notebook workflows.
Documentation
Full installation, usage, examples, API, citation, license, and trademark information are available in the documentation:
https://goldenviz.readthedocs.io
Project status
GoldenViz is currently an alpha package. The implementation is Matplotlib-first, with Seaborn charts supported when they produce standard Matplotlib axes.
GoldenViz uses heuristic checks. It can help detect common chart quality issues, but it does not replace human judgment and may produce false positives or false negatives.
See CHANGELOG.md for release notes.
Development
From a local checkout:
pip install -e .
For documentation work:
pip install -e ".[docs]"
For tests:
pip install -e ".[test]"
pytest
License
GoldenViz is free and open source software licensed under the GNU Affero General
Public License version 3 or later (AGPL-3.0-or-later). See LICENSE.
Commercial licensing, enterprise use cases, hosted services, or integrations that require terms different from AGPLv3 may be available by separate written agreement.
GoldenViz and the GoldenViz logo are trademarks or claimed trademarks of Wajdi Ben Saad. Use of the code under AGPLv3 does not grant permission to use the GoldenViz name or logo to imply endorsement, official status, or partnership. See TRADEMARKS.md.
Contributing
Contributions are welcome. See CONTRIBUTING.md for the development workflow and contribution licensing terms.
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 goldenviz-0.1.0a2.tar.gz.
File metadata
- Download URL: goldenviz-0.1.0a2.tar.gz
- Upload date:
- Size: 38.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea1e3c8064b405c30c1c403247df4a8d8eb0adcf97d27bd91791d46ebb7e7c8
|
|
| MD5 |
006e77f9bea1ef095d10027352057449
|
|
| BLAKE2b-256 |
9eb3eb2daddc7f50b824678e92b06e0314ef127f3aece88dee1f096a6354b4a8
|
Provenance
The following attestation bundles were made for goldenviz-0.1.0a2.tar.gz:
Publisher:
pypi-publish.yml on WajdiBenSaad/GoldenViz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goldenviz-0.1.0a2.tar.gz -
Subject digest:
6ea1e3c8064b405c30c1c403247df4a8d8eb0adcf97d27bd91791d46ebb7e7c8 - Sigstore transparency entry: 1841162909
- Sigstore integration time:
-
Permalink:
WajdiBenSaad/GoldenViz@d5a38429e1ea36f3f1c04c178ebe255bd118b941 -
Branch / Tag:
refs/tags/0.1.0a2 - Owner: https://github.com/WajdiBenSaad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@d5a38429e1ea36f3f1c04c178ebe255bd118b941 -
Trigger Event:
release
-
Statement type:
File details
Details for the file goldenviz-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: goldenviz-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 47.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bef75a2f590d9bf9412a2892c0a3dcd12223f48d10a1460a81fac55a9526283
|
|
| MD5 |
61e3a64526c311d88885e49b0ce1047a
|
|
| BLAKE2b-256 |
9d3faa098b1a9ea7fc57d3c6f1ecc7a567a2dedb76494523f7f1f4a94c0c524a
|
Provenance
The following attestation bundles were made for goldenviz-0.1.0a2-py3-none-any.whl:
Publisher:
pypi-publish.yml on WajdiBenSaad/GoldenViz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goldenviz-0.1.0a2-py3-none-any.whl -
Subject digest:
1bef75a2f590d9bf9412a2892c0a3dcd12223f48d10a1460a81fac55a9526283 - Sigstore transparency entry: 1841162937
- Sigstore integration time:
-
Permalink:
WajdiBenSaad/GoldenViz@d5a38429e1ea36f3f1c04c178ebe255bd118b941 -
Branch / Tag:
refs/tags/0.1.0a2 - Owner: https://github.com/WajdiBenSaad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@d5a38429e1ea36f3f1c04c178ebe255bd118b941 -
Trigger Event:
release
-
Statement type: