zengeld-canvas
High-performance SVG chart rendering engine for financial data visualization

Python bindings for the zengeld-canvas chart rendering engine. Built in Rust with zero runtime dependencies.
Features
- 96 Drawing Primitives - Fibonacci, Gann, Pitchforks, Elliott Waves, Patterns, Channels, and more
- 45+ Indicator Presets - Pre-configured rendering styles for SMA, RSI, MACD, Bollinger, Ichimoku, etc.
- 12 Series Types - Candlestick, HeikinAshi, Line, Area, Histogram, Baseline, and more
- 14 Multi-Chart Layouts - Grid, split, and custom layouts for dashboards
- High Performance - Native Rust speed via PyO3
- Theme System - 4 built-in presets (dark, light, high_contrast, cyberpunk) + runtime customization
Installation
pip install zengeld-canvas
Quick Start
from zengeld_canvas import Chart, Bar, UITheme, RuntimeTheme
chart = Chart(800, 600)
chart.bars(bars)
chart.candlesticks()
chart.sma(20, "#2196F3")
svg = chart.render_svg()
theme = UITheme.cyberpunk()
chart = Chart(800, 600)
chart.bars(bars)
chart.candlesticks()
chart.background(theme.background)
chart.colors(theme.candle_up_body, theme.candle_down_body)
svg = chart.render_svg()
runtime = RuntimeTheme.from_preset("dark")
runtime.background = "#1a0a2e"
runtime.candle_up_body = "#00ffff"
Examples
 Light Theme |  High Contrast Theme |
 Cyberpunk Theme |  Runtime Custom Theme |
Theme System
Built-in presets: dark(), light(), high_contrast(), cyberpunk()
from zengeld_canvas import UITheme, RuntimeTheme
dark = UITheme.dark()
light = UITheme.light()
runtime = RuntimeTheme.from_preset("dark")
runtime.background = "#1a0a2e"
json_str = runtime.to_json()
presets = RuntimeTheme.presets()
Drawing Primitives
| Fibonacci | 11 | Retracement, Fan, Arcs, Circles, Channel, Spiral |
| Lines | 9 | TrendLine, HorizontalLine, Ray, ExtendedLine |
| Annotations | 11 | Text, Callout, PriceLabel, Flag, Table |
| Shapes | 10 | Rectangle, Circle, Ellipse, Triangle, Path |
| Elliott Waves | 5 | Impulse, Correction, Triangle, Combo |
| Patterns | 6 | XABCD, HeadShoulders, Cypher, ThreeDrives |
| Gann | 4 | Fan, Box, Square, SquareFixed |
| And more... | 40 | Channels, Pitchforks, Cycles, Projections |
License
MIT OR Apache-2.0
Support the Project
If you find this library useful, consider supporting development:
| USDT | TRC20 | TNxMKsvVLYViQ5X5sgCYmkzH4qjhhh5U7X |
| USDC | Arbitrum | 0xEF3B94Fe845E21371b4C4C5F2032E1f23A13Aa6e |
| ETH | Ethereum | 0xEF3B94Fe845E21371b4C4C5F2032E1f23A13Aa6e |
| BTC | Bitcoin | bc1qjgzthxja8umt5tvrp5tfcf9zeepmhn0f6mnt40 |
| SOL | Solana | DZJjmH8Cs5wEafz5Ua86wBBkurSA4xdWXa3LWnBUR94c |