Home
Data visualization package, simple to use, highly customizable
Documentation: https://eriknovak.github.io/datachart
Source code: https://github.com/eriknovak/datachart
The datachart package is a python package for creating data visualizations, built on top of matplotlib. It is designed to be simple to use and highly customizable, i.e. it is easy to change the look and feel of the charts.
Features:
- Charts. Bar charts, line charts, scatter charts, histograms, heatmaps, box plots, pyramid charts, radial charts, and parallel coordinates — each created with a single function call from plain lists of dicts.
- Composition. Combine rendered charts with
Panel(overlay charts on a single plot, with optional dual y-axes) andGrid(arrange charts in a grid; grids nest). - Themes & configuration. Six predefined themes, each named for its visual trait, plus a global
configfor tweaking any style attribute — per-chartstyleoverrides included.
Requirements
Before starting the project make sure these requirements are available:
- python. The python programming language (v3.10 or higher).
Install
Upgrade
Example
Set a theme once and every chart follows it. The example below uses the INK theme:
from datachart.charts import LineChart
from datachart.config import config
from datachart.constants import THEME
config.set_theme(THEME.INK)
figure = LineChart(
[
[{"x": x, "y": y} for x, y in enumerate([40, 45, 43, 50, 56, 54, 61])],
[{"x": x, "y": y} for x, y in enumerate([38, 40, 44, 43, 48, 52, 55])],
],
title="Line",
subtitle=["Run 1", "Run 2"],
show_legend=True,
)
The same theme, across chart types and composed with Grid:
More examples on how to use the datachart package are available
on the official How-to Guides.
Using with LLMs
The documentation is available in LLM-friendly formats:
- llms.txt — index of the documentation with descriptions
- llms-full.txt — full documentation in a single file
- Every documentation page is also available as plain markdown by appending
index.mdto its URL, e.g. how-to-guides/charts/linechart/index.md
You can also connect your AI assistant directly: