Customizable visualization toolkit for science
Project description
cachai (Custom Axes and CHarts Advanced Interface) is a fully customizable Python visualization toolkit designed to deliver polished, publication-ready plots built on top of Matplotlib. Currently, the package includes the ChordDiagram module as its primary feature. For details on the toolkit’s capabilities, motivations and future projections, refer to this paper.
The code documentation is currently consolidated in docs/documentation.md. To contribute or report bugs, please visit the issues page.
:cookie: Fun fact:
"Cachai" (/kɑːˈtʃaɪ/) is a slang word from Chilean informal speech, similar to saying "ya know?" or "get it?" in English. Don't know how to pronounce it? Think of "kah-CHAI" (like "cut" + "chai" tea, with stress on "CHAI").
:gear: Installation guide
Installing cachai
All official releases of cachai are published on PyPI. To install, simply run:
pip install cachai
If you want to verify that cachai works correctly on your system, you can install it with optional testing dependencies by running:
pip install pytest
Requirements
cachai has been tested on Python >= 3.10.
Core dependencies: This Python packages are mandatory:
- numpy >= 2.0.0
- matplotlib >= 3.9.0
- pandas >= 2.3.0
- scipy >= 1.13.0
- seaborn >= 0.12.0
Optional dependencies:
This Python packages are optional:
- pytest >= 7.1.0 (Only required for testing)
To verify that cachai installed correctly and is functioning properly on your system, you can run:
import cachai
cachai.run_tests()
Alternatively, execute this in your terminal:
cachai-test
:hatching_chick: Getting started
You’ll typically need the following imports to begin using cachai:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import cachai.chplot as chp
To quickly test cachai, you can load one of the included datasets. Currently, the available datasets are tailored for Chord Diagram use cases. Here’s a minimal example using the large_correlations dataset to generate a Chord Diagram:
import cachai.data as chd
import cachai.chplot as chp
data = chd.load_dataset('large_correlations')
chp.chord(data)
[!NOTE] Downloading datasets requires an internet connection. If the files are already cached (i.e., you’ve accessed them before), cachai will use the local copies, allowing offline work.
For more advanced examples, explore the Jupyter notebooks in the docs/notebooks.
:black_nib: Citing cachai
If cachai contributed to a project that resulted in a publication, please cite this paper.
Example citation format:
@ARTICLE{Beltran_2025,
author = {{Beltr{\'a}n}, D. and {Dantas}, M.~L.~L.},
title = "{CACHAI's First Module: A Fully Customizable Chord Diagram for Astronomy and Beyond}",
journal = {Research Notes of the American Astronomical Society},
keywords = {Interdisciplinary astronomy, Astronomy data analysis, Astronomy data visualization, Astronomy software, 804, 1858, 1968, 1855},
year = 2025,
month = aug,
volume = {9},
number = {8},
eid = {216},
pages = {216},
doi = {10.3847/2515-5172/adf8df},
adsurl = {https://ui.adsabs.harvard.edu/abs/2025RNAAS...9..216B},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
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 cachai-0.1.0.tar.gz.
File metadata
- Download URL: cachai-0.1.0.tar.gz
- Upload date:
- Size: 40.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c48ce8a0dcb8da93c1b9c426495463c4daa8ad780df9e205712c0e263f3f32f5
|
|
| MD5 |
bac660375f4a89c6157b189b33b892d2
|
|
| BLAKE2b-256 |
d7574cf1781be5279f9b936d609180e9601dd968f0ab1050d5a12c38f5866a53
|
Provenance
The following attestation bundles were made for cachai-0.1.0.tar.gz:
Publisher:
release.yaml on DD-Beltran-F/cachai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cachai-0.1.0.tar.gz -
Subject digest:
c48ce8a0dcb8da93c1b9c426495463c4daa8ad780df9e205712c0e263f3f32f5 - Sigstore transparency entry: 569706325
- Sigstore integration time:
-
Permalink:
DD-Beltran-F/cachai@8752c006ab76d2f524d694d6844fcd574cb25c69 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/DD-Beltran-F
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8752c006ab76d2f524d694d6844fcd574cb25c69 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cachai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cachai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
996ed93313bff3605a2ddfaf65a7caaf4336cbfbff3edcdde49e6a0eb452f33c
|
|
| MD5 |
70aaa960e4996c2500c507ce5424bd97
|
|
| BLAKE2b-256 |
4c2e50891533ee688e1745be2a2b663c95530c77a7d33579087aca9e74917551
|
Provenance
The following attestation bundles were made for cachai-0.1.0-py3-none-any.whl:
Publisher:
release.yaml on DD-Beltran-F/cachai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cachai-0.1.0-py3-none-any.whl -
Subject digest:
996ed93313bff3605a2ddfaf65a7caaf4336cbfbff3edcdde49e6a0eb452f33c - Sigstore transparency entry: 569706330
- Sigstore integration time:
-
Permalink:
DD-Beltran-F/cachai@8752c006ab76d2f524d694d6844fcd574cb25c69 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/DD-Beltran-F
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8752c006ab76d2f524d694d6844fcd574cb25c69 -
Trigger Event:
push
-
Statement type: