Skip to main content

High-performance charting engine for Python — render publication-quality charts via .NET interop

Project description

Chartexa — High-Performance Charting for Python

PyPI Python License

Render publication-quality charts in Python using the Chartexa .NET engine — 40+ series types, real-time streaming, Jupyter integration, and GPU-accelerated rendering.


Installation

pip install chartexa

Prerequisites

Production-Ready Capabilities

  1. 40+ series types (2D, 3D, financial, scientific, instrumentation)
  2. High-volume rendering with downsampling and batched updates
  3. Native NumPy/Pandas interoperability
  4. Real-time streaming and dashboard layout primitives
  5. Notebook-first experience across Jupyter/VS Code/Colab

Quick Start

One-liner

import chartexa as cx

cx.line([10, 20, 15, 30, 25]).save("chart.png")

Fluent API

import chartexa as cx

(cx.Chart(800, 600)
    .line([1, 2, 3, 4], [10, 20, 15, 30], stroke="#4FC3F7", label="Revenue")
    .scatter([1, 2, 3, 4], [12, 18, 17, 28], fill="red", label="Targets")
    .save("multi_series.png"))

Financial Chart

import chartexa as cx
import pandas as pd

df = pd.read_csv("stock_data.csv")
cx.candlestick(df).save("candlestick.png")

Multi-Panel Dashboard

import chartexa as cx

fig, axes = cx.subplots(2, 2)
axes[0, 0].line([1, 2, 3], [10, 20, 15])
axes[0, 1].scatter([1, 2, 3], [30, 10, 25])
axes[1, 0].bar(["A", "B", "C"], [40, 60, 30])
axes[1, 1].mountain([1, 2, 3], [5, 15, 10])
fig.save("dashboard.png")

Real-Time Streaming

import chartexa as cx

chart = cx.Chart()
with chart.begin_update():
    chart.line(sensor_x, sensor_y, label="Temperature")
    chart.line(sensor_x, humidity_y, label="Humidity")
chart.save("sensors.png")

Features

40+ Series Types

Category Series
Basic Line, Scatter, Column, Bar, Mountain, Band, Bubble
Financial Candlestick, OHLC
Statistical BoxPlot, ErrorBar, Fan, Heatmap, Pie, Donut
Stacked StackedBar, StackedColumn, StackedMountain
Polar Polar, Radar
Scientific Oscilloscope, SpectrumAnalyzer, Waterfall, Lissajous, BodePlot, NyquistPlot
Instruments Gauges (Angular, Radial, Linear), Thermometer, Compass, VuMeter
Digital DigitalLine, DigitalBand, LogicAnalyzer, EyeDiagram, ConstellationDiagram
Geospatial GpsTrack, SkyView, RadarSweep
Widgets Alarm, Battery, PowerMeter, StatusLamp
3D XYZSurface

Interactive Modifiers

Zoom/pan, tooltips, crosshair, cursor, rubber-band zoom, data point selection, and series selection.

Theming & Styling

Built-in themes, custom colors (hex, RGB, CSS names), dash patterns, markers, and gradient palettes.

Axes

Numeric, DateTime, Logarithmic, and Category axes with full customization.

Data Sources & Streaming

Connect to MQTT, WebSocket, REST, gRPC, Serial (Arduino/ESP32), GPS, Audio, System Metrics, Docker, Market Data, OBD-II, CAN Bus, SDR, Flight Sims, Racing Sims, and more.

Data Transforms

Built-in moving_average, exponential_smoothing, derivative, integral, low_pass_filter, high_pass_filter, bollinger_bands, and more.

Performance & Large Data

  • LTTB downsampling — visually lossless reduction for million-point datasets
  • Min/Max downsampling — preserves extrema for financial/sensor data
  • FIFO ring buffer — fixed-capacity streaming with automatic eviction
  • Batch updateschart.begin_update() suspends rendering for bulk operations
  • NumPy/Pandas integration — pass arrays directly, zero-copy where possible

Layout & Dashboards

  • subplots(rows, cols) — matplotlib-style grid layouts
  • Figure / Dashboard — named panels with row/col spans
  • Constraint-based sizing (fixed + proportional)

Jupyter & Notebook Integration

  • Auto-detected in Jupyter, VS Code, Colab, Kaggle, and more
  • display_chart() renders inline
  • ChartWidget for interactive ipywidgets
  • %cx / %%cx magic commands
  • Colab GPU/CPU/TPU runtime detection

Export Formats

  • PNGchart.save("chart.png") or chart.to_bytes()
  • HTMLchart.to_html() / chart.save_html("chart.html")
  • Inlinechart.show() (opens in browser or displays in notebook)

How It Works

Chartexa for Python uses pythonnet to call into the Chartexa .NET charting engine. The Python package bundles the compiled .NET assemblies and provides a Pythonic API with fluent method chaining, NumPy/Pandas interop, and Jupyter integration.

Python API → pythonnet bridge → Chartexa .NET Engine → SkiaSharp renderer → PNG/HTML

Links

PyPI Publishing (Maintainers)

Use the full instructions in ../docs/PUBLISHING.md. Summary:

python -m build
twine check dist/*
twine upload dist/*

For test deployments:

twine upload --repository testpypi dist/*

License

MIT — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chartexa-1.0.1.tar.gz (83.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chartexa-1.0.1-py3-none-any.whl (84.3 MB view details)

Uploaded Python 3

File details

Details for the file chartexa-1.0.1.tar.gz.

File metadata

  • Download URL: chartexa-1.0.1.tar.gz
  • Upload date:
  • Size: 83.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for chartexa-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d858dac7c920f72b475810f32dce2cb3174399f66a2fd5b1134ef4df20f781ff
MD5 5bb048df926410b44aa57489202df704
BLAKE2b-256 f0f417e47c797bc603fe140b70371a948ad65a78f43d86638beaeadeba231b28

See more details on using hashes here.

File details

Details for the file chartexa-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: chartexa-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 84.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for chartexa-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2bf33c0cec62809b9c2603e41bc45874d17ace9572b35696216798fd14c585c7
MD5 ca14eefe921b8c5dfc4be308770e9ad4
BLAKE2b-256 211bc436c32526e95e5f3f63a98e87ac6dde666b7185b9d6207d71350e0d43fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page