https://github.com/jordansrowles/rowles.winforms.vizmorph
A versatile WinForms chart control that smoothly transitions between line and bar chart modes, featuring customizable colors, axes, animations, and persistent value labels. Ideal for dynamic data visualization with support for negative values and real-time updates.
https://github.com/jordansrowles/rowles.winforms.vizmorph
data-visualisation data-visualization winforms winforms-controls
Last synced: 2 months ago
JSON representation
A versatile WinForms chart control that smoothly transitions between line and bar chart modes, featuring customizable colors, axes, animations, and persistent value labels. Ideal for dynamic data visualization with support for negative values and real-time updates.
- Host: GitHub
- URL: https://github.com/jordansrowles/rowles.winforms.vizmorph
- Owner: jordansrowles
- Created: 2025-03-08T19:35:45.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-08T20:24:16.000Z (over 1 year ago)
- Last Synced: 2025-03-08T20:29:13.707Z (over 1 year ago)
- Topics: data-visualisation, data-visualization, winforms, winforms-controls
- Language: C#
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VizMorph

### Features
- **High-Performance Streaming**:
- Async data methods with thread-safe buffers
- FIFO trimming (configurable MaxDataPoints)
- Double-buffered painting
- **Advanced Statistics**:
- Real-time min/max/avg/median calculations
- Quartiles, IQR, and coefficient of variation
- Configurable status bar overlay
- **Alert System**:
- Threshold line with dash styling
- `ThresholdReached` event with value payload
- Hysteresis system to prevent event spamming
- **Customization**:
- DPI-aware point sizing
- Smooth line rendering (Catmull-Rom)
- Companion controller UI for design-time setup
### Quick Start
```csharp
// Initialize with sample data
var graph = new SparklineGraph();
await graph.AddDataPointAsync(42.5f);
// Configure alerts
graph.ThresholdValue = 40;
graph.ThresholdReached += (s, val) =>
MessageBox.Show($"Threshold breached: {val}");
// Enable features
graph.ShowStatistics = true;
graph.SmoothLines = true;
graph.MaxDataPoints = 100;
// Use controller UI
var controller = new SparklineGraphController();
controller.SelectedGraph = graph;
```
### Integration Tips
- Controller UI: Drag SparklineGraphController onto forms for live editing
- High-Frequency Data: Use UpdateDataAsync for batch updates
- Styling: Set LineColor/GridColor for theme matching
- Thresholds: Set ThresholdValue to float.NaN to disable