Welcome to ProCharts, a fully native, high-performance, and visually stunning charting engine built from the ground up for modern XAML applications.
ProCharts abandons heavy and slow control-based tree hierarchies in favor of direct vector rendering via modern drawing pipelines, ensuring buttery smooth 60fps animations and flawless telemetry rendering even under extreme point density stresses (up to 5,000+ real-time coordinates).
ProCharts is available as completely symmetric packages for both Avalonia UI and Uno Platform.
EmptyPointMode (Zero, Gap, Average, Interpolate).The ProCharts system consists of three architectural layers working together:
┌──────────────────────────────────────────────────────────┐
│ UI LAYER (CartesianChart / PieChart) │
│ - TemplatedControls capturing pointer events & size │
│ - Unified Legend wrappers & Tooltip visual renders │
└────────────────────────────┬─────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ SERIES DRAW LAYER (LineSeries / BarSeries / etc) │
│ - Listens to ItemsSource collections │
│ - Runs spline calculations & entry ease interpolations │
└────────────────────────────┬─────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ MATH & GEOMETRY LAYER (CoordinateTransform) │
│ - Direct scaling & logarithmic conversions │
│ - Dynamic data point bounding │
└──────────────────────────────────────────────────────────┘
Rather than defining individual paths as heavy framework UI elements, charts are drawn dynamically in each framework's render loop:
RoundedRect objects to support custom corner styling.Mapping data coordinate tuples (X, Y) to visual pixel bounds (PX, PY) is handled by CoordinateTransform.cs. It computes:
\(PX = Left + (X - XMin) \times \frac{Width}{XMax - XMin}\)
\(PY = Bottom - (Y - YMin) \times \frac{Height}{YMax - YMin}\)
It natively supports reversed coordinates (plotting descending depths) and logarithmic scaling (compressing astronomical telemetry distributions):
\(X_{log} = \log_{10}(X)\)
When telemetry feeds drop connection, databases write null or double.NaN. ProCharts handles this elegantly via EmptyPointMode:
0.0.LineSeriesPerfect for continuous numeric timelines. Employs a custom segment builder that separates arrays into non-contiguous slices when NaN bounds are crossed, maintaining pristine gaps.
AreaSeriesExtends LineSeries. It parses the exact same coordinate points, closes the vector path at the X-axis baseline, and fills it with an automatically generated HSL-harmonized vertical linear gradient that fades smoothly into the background grid.
BarSeriesDesigned for grouped comparisons. When multiple BarSeries are declared inside the same CartesianChart, they query their peer collections and automatically compute clustering positions, column widths, and offsets, rendering them in stunning rounded rectangles.
PieSeriesTranslates standard values into proportional angles (\(0^\circ\) to \(360^\circ\)). Built-in hover listeners dynamically calculate polar radii:
\(R(\theta) = Center + ExplodeDistance \times \cos(\theta)\)
Creating a frictionless radial exit physics effect.
In addition to traditional Cartesian plots, ProCharts offers dedicated advanced controls for financial analysis, status monitoring, structural hierarchies, statistical distribution, and executive analytics dashboards:
CandlestickSeries: Custom OHLC visual representing market trades. Renders high-fidelity wick stems and body blocks with custom brush overrides.OhlcSeries: Elegant tick-bar representation of Open, High, Low, and Close market prices with horizontal tick projections.HiloSeries: Minimalist range plots showcasing high-to-low bands.CircularGauge: Radial swept gauge featuring warnings, needle trackers, custom swept thickness, and a central digital readout.LinearGauge: Premium horizontal or vertical glassmorphic slider highlighting qualitative thresholds (Warning/Error).LiquidFillGauge: Dynamic container containing animated vector sine-wave liquid sweeps rising to represent precise telemetry storage.SankeyChart: Stunning flow maps using Bézier curves to link variable weight ribbons from source to destination nodes.TreemapChart: Squarified partition rectangles visualizing deep hierarchical structures with adaptive categorical colors.BoxPlotSeries: Full distribution representation highlighting upper/lower bounds, whiskers, median line, interquartile ranges, and floating outlier markers.BeeswarmPlotSeries: Dynamic point-packing swarm scatter coordinates that resolve overlapping scatter collisions.HistogramSeries: Automatic value binning and frequency distributions grouped in clean modern bars.KpiCard: Ultra-premium glassmorphic card showcasing critical indicators, inline mini-sparkline vectors, and colored positive/negative trend badges.HeatmapChart: Cartesian category load matrix cells representing heat density via smooth palette lookup interpolations.BulletChart: Highly compact linear dashboard control plotting target markers against colored qualitative range intervals.ProCharts includes prebuilt custom palettes to match modern dark desktop trends:
Palette.Modern).Palette.Emerald).Palette.SlateDark).Palette.Retro).Palette.Cyberpunk).