FastCharts.Wpf
1.0.0
dotnet add package FastCharts.Wpf --version 1.0.0
NuGet\Install-Package FastCharts.Wpf -Version 1.0.0
<PackageReference Include="FastCharts.Wpf" Version="1.0.0" />
<PackageVersion Include="FastCharts.Wpf" Version="1.0.0" />
<PackageReference Include="FastCharts.Wpf" />
paket add FastCharts.Wpf --version 1.0.0
#r "nuget: FastCharts.Wpf, 1.0.0"
#:package FastCharts.Wpf@1.0.0
#addin nuget:?package=FastCharts.Wpf&version=1.0.0
#tool nuget:?package=FastCharts.Wpf&version=1.0.0
FastCharts - High-Performance .NET Charting Library
<div align="center"> <img src="mabinogi-icon.png" alt="FastCharts" width="128" height="128">
π What is FastCharts?
FastCharts is a high-performance .NET charting library designed for real-time applications, financial dashboards, and data visualization scenarios requiring smooth rendering of massive datasets (10M+ points).
β‘ Key Features
- π Real-time Performance: 60 FPS rendering with LTTB decimation
- π Rich Chart Types: Line, Scatter, Bar, Area, Band, OHLC, ErrorBar
- π― Multi-Axis Support: Independent left/right Y axes
- π Advanced Axes: Linear, Logarithmic, Category with custom bases
- π Streaming Data: Rolling windows with efficient append operations
- π¨ Interactive: Pan, zoom, crosshair, pinned tooltips
- π Annotations: Lines, ranges, labels with full styling
- πΎ Export Ready: PNG export with clipboard integration
- π Cross-Platform: Windows, macOS, Linux support
- ποΈ MVVM Ready: Full WPF integration with ReactiveUI
π― Perfect For
- Financial Applications: Trading platforms, market analysis
- Real-Time Dashboards: IoT monitoring, system metrics
- Scientific Visualization: Research data, sensor readings
- Business Intelligence: KPI dashboards, analytics
- Desktop Applications: WPF apps with rich data visualization
π¦ Quick Start
For WPF Applications (Recommended)
dotnet add package FastCharts.Wpf
Basic Usage
XAML:
<Window xmlns:fc="clr-namespace:FastCharts.Wpf.Controls;assembly=FastCharts.Wpf">
<fc:FastChart Model="{Binding ChartModel}" />
</Window>
C# Code:
using FastCharts.Core;
using FastCharts.Core.Series;
// Create chart model
var model = new ChartModel();
// Add data series
model.AddSeries(new LineSeries(new[] {
new PointD(0, 10),
new PointD(1, 20),
new PointD(2, 15),
new PointD(3, 25)
}) {
Title = "Sales Data",
Color = ColorRgba.Blue,
StrokeWidth = 2
});
// Bind to your ViewModel
this.DataContext = new { ChartModel = model };
Real-Time Streaming Example
// Create streaming series with rolling window
var streamingSeries = new StreamingLineSeries {
Title = "Live Data",
MaxPointCount = 1000, // Keep last 1000 points
RollingWindowDuration = TimeSpan.FromMinutes(5)
};
// Add real-time data
streamingSeries.AppendPoint(new PointD(DateTime.Now.Ticks, sensorValue));
model.AddSeries(streamingSeries);
Multi-Axis Example
// Create chart with multiple Y axes
var model = new ChartModel();
// Add left axis series (temperature)
model.AddSeries(new LineSeries(temperatureData) {
Title = "Temperature (Β°C)",
YAxisIndex = 0, // Left Y axis
Color = ColorRgba.Red
});
// Add right axis series (pressure)
model.AddSeries(new LineSeries(pressureData) {
Title = "Pressure (hPa)",
YAxisIndex = 1, // Right Y axis
Color = ColorRgba.Blue
});
ποΈ Architecture
FastCharts uses a clean, modular architecture:
βββ FastCharts.Core # Core algorithms & abstractions
βββ FastCharts.Rendering.Skia # Cross-platform rendering engine
βββ FastCharts.Wpf # WPF controls & MVVM integration
Package Selection Guide
| Scenario | Packages Needed |
|---|---|
| WPF Desktop App | FastCharts.Wpf (includes others) |
| Cross-Platform Console | FastCharts.Core + FastCharts.Rendering.Skia |
| Web API Chart Generation | FastCharts.Core + FastCharts.Rendering.Skia |
| Business Logic Only | FastCharts.Core |
π Advanced Features
LTTB Decimation for Massive Datasets
var largeSeries = new LineSeries(millionsOfPoints) {
EnableAutoResampling = true // Automatically reduces to screen resolution
};
// Maintains visual fidelity while ensuring 60 FPS performance
Performance Metrics Overlay
model.AddBehavior(new MetricsOverlayBehavior {
ShowDetailed = true,
Position = MetricsPosition.TopLeft
});
// Press F3 to toggle, F4 for detail level, F5 to reset
Interactive Behaviors
model.AddBehavior(new PanBehavior());
model.AddBehavior(new ZoomBehavior());
model.AddBehavior(new CrosshairBehavior());
model.AddBehavior(new PinnedTooltipBehavior()); // Right-click to pin tooltips
Annotations
// Add horizontal line annotation
model.AddAnnotation(new LineAnnotation {
Type = LineAnnotationType.Horizontal,
Value = 100,
Label = "Target Value",
Color = ColorRgba.Green
});
// Add range highlight
model.AddAnnotation(new RangeAnnotation {
Type = RangeAnnotationType.Horizontal,
StartValue = 90,
EndValue = 110,
FillColor = ColorRgba.Green.WithAlpha(0.2f),
Label = "Acceptable Range"
});
π Performance
- Rendering Speed: Up to 60 FPS for interactive charts
- Memory Efficiency: Optimized for large datasets (10M+ points)
- LTTB Algorithm: Reduces data while preserving visual fidelity
- Hardware Acceleration: GPU-accelerated rendering via SkiaSharp
- Streaming Optimized: Real-time updates with minimal overhead
π Framework Support
| Framework | FastCharts.Core | Rendering.Skia | WPF |
|---|---|---|---|
| .NET Standard 2.0 | β | β | β |
| .NET Framework 4.8 | β | β | β |
| .NET 6 | β | β | β |
| .NET 8 | β | β | β |
Platforms: Windows, macOS, Linux (Core + Skia), Windows only (WPF)
π Documentation
- π Getting Started | DΓ©marrage Rapide
- π Chart Types Guide | Guide des Types de Graphiques
- π¨ Styling & Themes | Style & ThΓ¨mes
- β‘ Performance Guide | Guide Performance
- π API Reference | RΓ©fΓ©rence API
- π§ͺ Examples & Demos | Exemples & DΓ©mos
π€ Contributing
We welcome contributions! See our Contributing Guide for details.
Development Setup
git clone https://github.com/MabinogiCode/FastCharts.git
cd FastCharts
dotnet restore
dotnet build
dotnet test # 594 tests should pass
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Built with SkiaSharp for cross-platform graphics
- Inspired by LiveCharts2 and ScottPlot
- LTTB algorithm implementation based on research by Sveinn Steinarsson
<div align="center"> <strong>Made with β€οΈ for the .NET community</strong><br> <sub>FastCharts - Where performance meets visualization</sub> </div>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0-windows10.0.19041 is compatible. net7.0-windows was computed. net8.0-windows was computed. net8.0-windows10.0.19041 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
| .NET Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- DynamicData (>= 9.4.1)
- FastCharts.Core (>= 1.0.0)
- FastCharts.Rendering.Skia (>= 1.0.0)
- ReactiveUI (>= 22.3.1)
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views.WPF (>= 3.119.1)
- System.Reactive (>= 6.1.0)
-
net6.0-windows10.0.19041
- DynamicData (>= 9.4.1)
- FastCharts.Core (>= 1.0.0)
- FastCharts.Rendering.Skia (>= 1.0.0)
- ReactiveUI (>= 22.3.1)
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views.WPF (>= 3.119.1)
- System.Reactive (>= 6.1.0)
-
net8.0-windows10.0.19041
- DynamicData (>= 9.4.1)
- FastCharts.Core (>= 1.0.0)
- FastCharts.Rendering.Skia (>= 1.0.0)
- ReactiveUI (>= 22.3.1)
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views.WPF (>= 3.119.1)
- System.Reactive (>= 6.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 212 | 12/15/2025 |
FastCharts.Wpf v1.0.0 - Production-ready WPF controls with full MVVM support!