Skip to content

KEDevO/Chartexa

Repository files navigation

Chartexa Community

Open-source charting engine for .NET and Python — by KEDevO

CI NuGet PyPI .NET License


What is Chartexa?

Chartexa Community is a rendering-backend-agnostic charting engine that cleanly separates data, logic, commands, rendering, and interaction.

Built from scratch in C#/.NET 10, it is designed for high-performance visualization with support for multiple rendering backends.

Key Capabilities

  • High-performance rendering pipeline
  • Pluggable renderers (WPF, Skia, Web/JSON export)
  • .NET and Python support
  • Modular architecture
  • Interaction tools (zoom, pan, cursor, tooltips)

Installation

.NET (NuGet)

# Core engine
dotnet add package Chartexa.Core

# Renderers (choose as needed)
dotnet add package Chartexa.Rendering.Wpf
dotnet add package Chartexa.Rendering.Skia
dotnet add package Chartexa.Rendering.Web

# Optional modules
dotnet add package Chartexa.Data
dotnet add package Chartexa.DataSources
dotnet add package Chartexa.Layout
dotnet add package Chartexa.Playback
dotnet add package Chartexa.Modifiers
dotnet add package Chartexa.Theming

Python

pip install chartexa

Requires the .NET 10 Runtime to be installed.


Quick Start

.NET / WPF

<Window xmlns:chartexa="clr-namespace:Chartexa.Rendering.Wpf.Controls;assembly=Chartexa.Rendering.Wpf">
    <chartexa:ChartSurface x:Name="Chart"/>
</Window>
using Chartexa.Core.Axes;
using Chartexa.Data.Series;

Chart.XAxes.Add(new NumericAxis { Id = "X" });
Chart.YAxes.Add(new NumericAxis { Id = "Y" });

var series = new XYDataSeries();
series.Append(new[] { 1.0, 2.0, 3.0, 4.0 }, new[] { 10.0, 20.0, 15.0, 30.0 });

Chart.Series.Add(new FastLineRenderableSeries { DataSeries = series });
Chart.InvalidateChart();

Python

import chartexa as cx

# One-liner convenience functions
cx.line([10, 20, 15, 30, 25]).save("chart.png")

# Fluent API with multiple series
(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 charts from Pandas DataFrames
import pandas as pd
df = pd.read_csv("stock_data.csv")
cx.candlestick(df).save("candlestick.png")

# Multi-panel dashboards
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])
fig.save("dashboard.png")

The Python package provides the core charting API, NumPy/Pandas integration, Jupyter notebook support, and image export. See the PyPI page for full documentation.


Architecture

Chartexa uses a clean, layered architecture:

User Code → ChartSurface → Axes + Series
         → RenderPipeline → RenderCommand[]
         → Renderer (WPF / Skia / Web)

Full architecture documentation is available in the repository (see ARCHITECTURE.md).


Available Packages

Package Description Platform
Chartexa.Core Core engine primitives Cross-platform
Chartexa.Data Data series and processing Cross-platform
Chartexa.DataSources Data source abstraction layer Cross-platform
Chartexa.Layout Dashboard layout system Cross-platform
Chartexa.Rendering.Wpf WPF renderer + controls Windows (WPF)
Chartexa.Rendering.Skia SkiaSharp cross-platform renderer Cross-platform
Chartexa.Rendering.Web WebAssembly / JSON export Cross-platform
Chartexa.Modifiers Interaction modifiers Windows (WPF)
Chartexa.Theming Theme system Cross-platform
Chartexa.Playback Playback and timeline utilities Cross-platform
Chartexa.Python Python interop bridge Cross-platform

Building from Source

Prerequisites

  • .NET 10 SDK
  • Windows (required for WPF and DirectX renderer development)

Commands

dotnet build
dotnet test

Run the WPF demo:

dotnet run --project examples/WpfDemo

Release and Publishing

Chartexa is structured for dual distribution:

  1. NuGet packages for .NET consumers
  2. PyPI package for Python consumers

For maintainers, release workflow and publishing commands are documented in docs/PUBLISHING.md.


License

MIT — see LICENSE for details.

Chartexa Community is and will remain free and open-source under the MIT license.


Status

This repository is the Community edition.

Commercial tiers are intentionally hidden for now until those offerings are production-ready.


About

Chartexa is a high-performance, cross-platform charting and data visualization engine. Designed to be modular, extensible, and platform-agnostic, it separates data, processing, rendering, and UI into clean layers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors