High-performance .NET charting library core components. Supports real-time data, LTTB decimation, streaming series, interactive behaviors, and multi-axis charts. Cross-platform with .NET Standard 2.0 support.
$ dotnet add package FastCharts.CoreFastCharts 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).
dotnet add package FastCharts.WpfXAML:
<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 };// 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);// 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
});FastCharts uses a clean, modular architecture:
├── FastCharts.Core # Core algorithms & abstractions
├── FastCharts.Rendering.Skia # Cross-platform rendering engine
└── FastCharts.Wpf # WPF controls & MVVM integration
| 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 |
var largeSeries = new LineSeries(millionsOfPoints) {
EnableAutoResampling = true // Automatically reduces to screen resolution
};
// Maintains visual fidelity while ensuring 60 FPS performancemodel.AddBehavior(new MetricsOverlayBehavior {
ShowDetailed = true,
Position = MetricsPosition.TopLeft
});
// Press F3 to toggle, F4 for detail level, F5 to resetmodel.AddBehavior(new PanBehavior());
model.AddBehavior(new ZoomBehavior());
model.AddBehavior(new CrosshairBehavior());
model.AddBehavior(new PinnedTooltipBehavior()); // Right-click to pin tooltips// 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"
});| 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)
We welcome contributions! See our Contributing Guide for details.
git clone https://github.com/MabinogiCode/FastCharts.git
cd FastCharts
dotnet restore
dotnet build
dotnet test # 594 tests should passThis project is licensed under the MIT License - see the LICENSE file for details.