⚠️ Warning: This website is still being developed. Code examples, videos, and links may be broken while I continue to work on it. -- Scott, May 10, 2020
Resources for visualizing data using C# and the .NET platform

Csharp Data Visualization

This website is a collection of minimal-case code examples demonstrating how to visualize data in C#. This website is an extension of the Csharp Data Visualization GitHub project. All projects were created with Visual Studio Community which is free for personal and open-source projects.

Target audience: Code and discussion on this website is geared toward developers who understand general programming concepts (functions, classes, inheritance, types) but may be new to C# or haven't had much experience using graphics libraries which target the .NET platform. Advanced topics and .NET nuances are intentionally avoided to make this content easy to absorb for newcomers.

⚠️ WARNING: This website is a work in progress, and links will appear as content is uploaded.

The Art of Drawing in C#

This mini-series surveys the field of 2D graphics rendering in C#. We begin by exploring how to create static images and animated graphics using System.Drawing, then branch-out to explore other popular graphics libraries and even demonstrate how to harness the GPU for hardware-accelerated 2D graphics rendering. This series then shifts focus toward software architecture, with an emphasis on designs that empower the developer to write platform-agnostic code to make it easy to switch between graphics libraries as needed.

⚠️ WARNING: Every episode is associated with a YouTube video. Most articles contain source code only. Videos have not yet been uploaded.

Drawing Graphics in C#

Animating Graphics in C#

Performance Optimization and Measurement

Modern Alternatives to System.Drawing

Creating Library-Agnostic Graphics Models

Practice Projects

Interacting with the Mouse

Conclusions

  • Episode 23: Conclusions and Next Steps

Plotting Data with C#

Whether you call it charting, graphing, or plotting, this mini series will focus on the currently-available tools we can use to display data as line graphs, bar graphs, scatter plots, and more using C#

Free and Open-Source Charting Libraries

Commercial Charting Libraries

These libraries are designed specifically for high performance data plotting.

Commercial Libraries with a Charting Component

I started to review each of these thoroughly, but it turns out they're mostly the same: commercial products that offer hundreds or thousands of controls, and a chart control gets thrown in there, supports some line graphs and bar charts, and is marked as complete. While they work for simple data, they prioritize theming and animation over performance or support for large datasets. These products are interesting to be aware of, but aren't really what I'm seeking for serious scientific computing applications.

Visualizing Audio in C

While this section is being developed, useful code examples can be found on the Csharp Data Visualization GitHub page: https://github.com/swharden/Csharp-Data-Visualization#audio

  • Episode ?: * Synthesizing Audio
  • Episode ?: * Realtime Audio Analysis
  • Episode ?: * Realtime Audio Visualization
  • Episode ?: * Realtime Audio Visualization with FFT
  • Episode ?: * Realtime Audio Spectrogram

Interacting with Hardware using C

  • Episode ?: * Bus Pirate
  • Episode ?: * FTDI Bit-Bang
  • Episode ?: * FTDI Native
  • Episode ?: * Digital Multimeter Interface
  • Episode ?: * Serial Data Logger
  • Episode ?: * Create a Temperature Sensor Application