pnezis/tucan
62.1
Adequate · 18 September 2026
8.1k
lines of production code
Elixir
primary language
1
measurement over time
What this system is
Tucan is an Elixir plotting library built on top of VegaLite that provides a high-level API for creating interactive visualizations such as bar, line, scatter, and financial charts. It supports advanced features including data grouping, faceting, and geometric overlays, while offering extensive customization through modular components for axes, grids, and legends. The system includes a rich set of pre-configured themes and integrates with Nx tensors for numerical data processing, all supported by comprehensive documentation and test coverage.
Features
Add new chart themes: dark, excel, ggplot2, and more
Users can now apply several new pre-configured chart themes to their visualizations, including dark, excel, ggplot2, five\_thirty\_eight, google\_charts, latimes, power\_bi, quartz, urban\_institute, and vox. These themes are sourced from the Vega themes library and provide distinct styling options for backgrounds, colors, axes, and legends to match various aesthetic preferences or brand guidelines.
themes · high confidence
New modular API for axes, grid, legend, and geometry customization
This release introduces dedicated helper modules to configure plot aesthetics and structure. \Tucan.Axes\ provides functions to set titles, colors, offsets, and label angles for x and y axes. \Tucan.Grid\ allows enabling/disabling and styling grid lines (color, opacity, width, dash style). \Tucan.Legend\ offers control over legend titles, orientation, and visibility. \Tucan.Geometry\ adds the ability to overlay geometric shapes like circles, ellipses, and polygons on plots. Additionally, \Tucan.Layers\ simplifies combining multiple plot specifications, and \Tucan.Finance\ introduces a \candlestick\ plot for financial data.
lib/tucan · high confidence
New time series plotting guide added
A new tutorial notebook, \time\_series\_plots\_in\_tucan.livemd\, has been added to the documentation. It demonstrates how to create various time-based visualizations using Tucan, including temporal scatter plots, strip plots, boxplots, and faceted views, using the built-in \:weather\ dataset.
notebooks · high confidence
Tucan library initialization and comprehensive documentation
The \lib/tucan.ex\ file has been initialized with the full implementation of the Tucan plotting library, replacing the previous placeholder. This introduces a high-level API for creating interactive plots on top of VegaLite, supporting various chart types (bar, line, scatter, histogram, etc.), composite plots like pairplots, and features such as grouping, faceting, and theme customization. The module now includes extensive documentation detailing basic usage, Nx tensor support, data type inference for temporal columns, and customization utilities.
lib · high confidence
Behavioural changes
3 commits (0 fixes) modifying assets
A change to existing behaviour in assets — 3 commits, 3 files.
assets · medium confidence · unverified
Automated theme loading and documentation generation
The library now automatically discovers and loads theme definitions from .exs files in the themes directory, validating that each theme contains required keys (:name and :theme) and rejecting invalid configurations with warnings. Additionally, it generates documentation for each theme by evaluating a VegaLite example with the theme applied, providing users with immediate visual previews of how each theme affects chart rendering.
lib/tucan/themes · high confidence
Test coverage
Added comprehensive test coverage for Tucan modules; Added tests for theme helper functions; Comprehensive test suite for Tucan plotting functions.
Dependencies
Initial release of Tucan plotting library with comprehensive documentation setup
This entry marks the initial release of Tucan (v0.6.0), a plotting library built on top of VegaLite. The project introduces core dependencies including \vega\_lite\, \nx\ (optional), and \jason\, alongside dev tools like \ex\_doc\ and \fancy\_fences\. It establishes a structured documentation system that groups modules into categories such as Plots, Layout, and Styling, and integrates live Vega-Lite plot rendering in the generated HTML docs via CDN scripts.
(dependencies) · high confidence
Housekeeping
Add project linting and documentation tooling configuration
The project now includes configuration files for Credo (\.credo.exs\) and Doctor (\.doctor.exs\) to enforce code quality and documentation standards, alongside a Makefile with targets for linting and spell-checking. A custom CSpell dictionary (\tucan.txt\) and configuration (\cspell.json\) have been added to recognize domain-specific terms, and the formatter has been updated to include the \themes\ directory in its inputs.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 62.
Lenses
- Code Health 98
- Architecture 100
- Maturity 34
- Readiness 77
- Security 96
Changes since last survey
- 300 commits — 285 feature/other, 15 fixes
By area
- (root) — 137 commits
- lib/tucan — 79 commits
- lib/tucan.ex — 56 commits
- .github/workflows — 11 commits
- notebooks/time_series_plots_in_tucan.livemd — 5 commits
- test/tucan_test.exs — 4 commits
- test/tucan — 3 commits
- .github/dependabot.yml — 2 commits
- assets/mnist_sample.bin — 1 commit
- assets/soccer-field.jpeg — 1 commit
- themes/excel.exs — 1 commit
Notable commits
- fix: Fix CHANGELOG headers
- fix: Fix Tucan.Data.column_types/1 when data is empty (#42)
- fix: Fix elixir 1.19 typing violations
- fix: Fix syntax error in README example
- fix: enable dialyzer warnings & spec fixes
- fix: fix README example
- fix: fix boxplot docs
- fix: fix docs
- fix: fix facet_by spec
- fix: fix function arity in docs
- fix: fix hruler & vruler docs
- fix: fix punchcard plot in docs
- fix: fix set_height docs
- fix: fix time series guide
- fix: ignore color_by in fixed point lines
- change: Add Axes.set_color/2
- change: Add Grid.set_color/2
- change: Add Tucan.Axes.set_label_angle/3
- change: Add Tucan.Axes.set_labels_enabled/3 helper
- change: Add Tucan.Axes.set_title_color/3
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
pnezis/tucan was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7033fb70c2d0e7617e68b525e5c02ce2e937fcf7 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.