An Overview of C# .NET Charts for Desktop Applications
What You Will Need
• ComponentOne Studio Enterprise
• Visual Studio 2022
Controls Referenced
• FlexChart
Tutorial Concept
Learn how to easily configure and customize various C# chart controls for stunning, interactive dashboards in your web and desktop apps.
Charts are essential to any modern .NET application that aims to present data in a digestible, interactive format. Whether you’re building an internal dashboard or a full-featured analytics suite, choosing the right visualization tool can make all the difference. ComponentOne’s FlexChart is a versatile UI control that supports over 80 types of C# chart configurations, designed to help developers visualize data in dynamic, meaningful ways.
Rethinking What Counts as a Chart Type
Defining what exactly constitutes a chart “type” can get a bit fuzzy. Basic charts like Bar, Column, Line, Area, and Pie are easy to categorize. But when you start layering on features like stacking, symbol markers, error bars, rotated axes, and more — it’s easy to see how one foundational chart morphs into many different visual forms.
ComponentOne’s FlexChart embraces this flexibility by modeling its classification approach on Microsoft Excel. In Excel, each tile in the charting dialog is treated as a unique chart type, even when the base visual remains the same. This blog clarifies the sheer scope of FlexChart’s capabilities by walking through supported chart configurations and offering practical examples on how to implement each one in your C# desktop applications.
Before diving in: If you’re unfamiliar with initializing or populating FlexChart controls, start by following these instructions.
Column Charts in C# with FlexChart
Column charts are perfect for comparing data across categories using vertical bars. They align data along the X-axis while the Y-axis indicates value magnitude. Whether you’re comparing quarterly sales or survey responses, column charts make interpretation easy.
FlexChart supports several variations, including:
- Standard Column
- Stacked Column
- 100% Stacked Column
- Floating Range Columns (Range Bar)
Configuration is simple — just adjust the ChartType
and Stacking
properties:
// Set FlexChart to Column chart type
flexChart1.ChartType = C1.Chart.ChartType.Column;
// Set stacking
flexChart1.Stacking = C1.Chart.Stacking.Stacked;
Reference the full sample to configure floating bar charts.
For grouped stacked columns, use StackingGroup
and LegendGroup
on individual series to provide extra analytical depth.
Bar Charts: Horizontal Bar Charts with FlexChart
Bar charts are essentially column charts rotated on their sides. This flipped orientation can be more readable when dealing with long category names or tight vertical spaces.
Types include:
- Clustered Bar
- Stacked Bar
- 100% Stacked Bar
- Gantt-style Range Bar
To configure:
// Set FlexChart to Bar chart type
flexChart1.ChartType = C1.Chart.ChartType.Bar;
// Set stacking 100%
flexChart1.Stacking = C1.Chart.Stacking.Stacked100;
To learn how to create Bar Charts for C# .NET Applications, check out the video below:
To create a tornado chart (a great choice for comparing two categories side-by-side), use negative values and adjust the Y-axis origin accordingly.
Line Charts: Timelines Made Clear
When your goal is to highlight trends over time, line charts shine. FlexChart supports dozens of combinations by blending features such as symbols, spline smoothing, stacking, and step connectors.
Examples include:
- Basic Line with or without symbols
- Stacked and 100% Stacked
- Spline variations
- Step lines for abrupt changes
To configure using FlexChart:
// Set FlexChart to Spline with Symbols chart type
flexChart1.ChartType = C1.Chart.ChartType.SplineSymbols;
// Enable stacking
flexChart1.Stacking = C1.Chart.Stacking.Stacked;
For a quick start tutorial on creating Line Charts for C# .NET Applications, check out the video below:
Need a rotated line chart? Set the Rotated
property.
Want to emphasize data gaps? Turn off InterpolateNulls
.
Area Charts: Fill the Space, Tell the Story
Area charts add visual weight to the trends shown in line charts by filling the space beneath the line. You can combine features like spline smoothing, step transitions, stacking, and rotated orientations.
C# Area Chart Configuration for FlexChart:
// Set FlexChart to Area chart type
flexChart1.ChartType = C1.Chart.ChartType.Area;
// Rotate the chart
flexChart1.Rotated = true;
Create Area Charts for C# .NET Applications in the video below:
Looking to visualize data like a streamgraph? That’s possible by centering stacked areas and using transparent placeholder series.
XY Scatter and Bubble Charts
Scatter plots are ideal for plotting correlations between numeric values. They allow for irregular datasets and, when extended into bubble charts, introduce a third dimension (Z-axis) via varying point sizes.
Example:
flexChart1.ChartType = ChartType.Scatter;
flexChart1.BindingX = "Age";
Series ySeries = new Series { Binding = "Amount" };
flexChart1.Series.Add(ySeries);
To build a bubble chart:
flexChart1.BindingX = "Age";
flexChart1.Options.BubbleMaxSize = 60;
flexChart1.Options.BubbleMinSize = 10;
Series yzSeries = new Series { Binding = "Amount,Return" };
flexChart1.Series.Add(yzSeries);
You can even divide your scatter plot into quadrants by customizing axis origins.
flexChart1.AxisY.Origin = 5;
flexChart1.AxisX.Origin = 135;
C# Pie Charts: The Whole Story at a Glance
Pie charts are essential when you want to represent parts of a whole. FlexChart offers:
- Pie
- Donut
- Sunburst
- Multi-level Sunburst
FlexPie configuration:
C1.Win.Chart.FlexPie flexPie1 = new C1.Win.Chart.FlexPie();
flexPie1.Binding = "Value";
flexPie1.BindingName = "Quarter";
To show multiple pie charts:
C1.Win.Chart.FlexPie flexPie1 = new C1.Win.Chart.FlexPie();
flexPie1.Binding = "Q1, Q2, Q3";
flexPie1.BindingName = "Company";
For hierarchical data, use the Sunburst
control and bind multiple name fields.
C1.Win.Chart.Sunburst sunburst1 = new C1.Win.Chart.Sunburst();
sunburst1.Binding = "Value";
sunburst1.BindingName = "Year, Quarter, Month";
Quickly create pie charts for C# .NET WinForms applications in the video below:
Radar and Polar Charts
When you’re working with multiple variables across categories, radar and polar charts provide intuitive radial layouts.
Example for FlexRadar:
var flexRadar1 = new C1.Win.Chart.FlexRadar;
flexRadar1.BindingX = "Name";
Series budget = new Series() { Binding = "Sales", Name = "Revenue" };
Series expenditure = new Series() { Binding = "Expenses", Name = "Expenses" };
flexRadar1.Series.Add(budget);
flexRadar1.Series.Add(expenditure);
Add stacking, fill areas, or adjust to scatter for polar chart variants.
Display directional data with style using a Windrose chart — a polar column chart supported by FlexRadar in ASP.NET MVC:
Stock Charts: Visualizing Financial Data
FlexChart makes it easy to plot financial instruments with charts like candlesticks and high-low-open-close (HLOC).
FlexChart configuration for C# Stock charts:
// Set FlexChart to Candlestick chart type
flexChart1.ChartType = C1.Chart.ChartType.Candlestick;
var s = new Series{ Binding = "High,Low,Open,Close" };
flexChart1.Series.Add(s);
If only high and low values are needed, simply bind two fields for a classic High-Low chart.
Statistical Charts: When the Math Matters
FlexChart goes beyond standard visuals with advanced statistical charts, including:
- Box & Whisker
- Error Bars
- Waterfall
- BreakEven
- Histograms
For example, a waterfall chart:
// Add Waterfall series
var waterfall = new C1.Win.Chart.Waterfall() {Binding="PChange", Name = "Increment,Decrement,Total"};
waterfall.IntermediateTotalLabels = new string[] { "Q1", "Q2", "Q3", "Q4" };
waterfall.IntermediateTotalPositions = new int[] { 3, 6, 9, 12 };
flexChart1.Series.Add(waterfall);
Or a histogram:
// Set FlexChart to Histogram chart type
flexChart1.ChartType = ChartType.Histogram;
var histogramSeries = new C1.Win.Chart.Histogram(){ Binding = "X", Name = "Frequency", BinWidth = 0.2 };
flexChart1.Series.Add(histogramSeries);
For combination charts like Pareto (histogram + line), configure at the series level.
Check out our documentation to explore additional chart options.
Funnel & Triangle Charts
Funnel charts (also known as pyramid or rectangle funnels) help represent data that follows a sequential or filtering process — ideal for sales funnels.
// Set chart to Funnel Rectangle
flexChart1.ChartType = ChartType.Funnel;
flexChart1.Options.FunnelType = C1.Win.Chart.FunnelChartType.Rectangle;
Need a true pyramid chart? Adjust neck width and reverse the axes.
Map Charts: TreeMap and Heatmap Visualizations
Heatmaps and TreeMaps are powerful tools for hierarchical or matrix-style data visualization. FlexChart and its associated controls support both discrete and gradient color-based heatmaps.
Example for TreeMap:
// Set chart to Horizontal TreeMap Rectangle
var treeMap = new C1.Win.Chart.TreeMap;
treeMap.ChartType = TreeMapType.Horizontal;
treeMap.Binding = "CurrentSales";
treeMap.BindingName = "Type";
treeMap.ChildItemsPath = "Items";
treeMap.DataSource = GetTreeMapData();
treeMap.MaxDepth = 2;
Create a Heatmap by adding a Heatmap series using FlexChart.
Beyond the Basics: Flexibility Through Combination
FlexChart doesn’t stop at predefined chart types. Its flexibility allows for combination charts by setting the ChartType
on each series independently. Add multiple Y axes, stack different types, or blend line and bar charts for unique insights.
Related Tools for the C# Chart Enthusiast
ComponentOne goes further with its visualization toolkit:
- FinancialChart: Includes advanced financial charts like Heiken-Ashi and Renko.
- Sparkline: Minimalist visuals like win-loss and micro column charts.
- Gauges: Linear, radial, and bullet-style indicators.
- Maps: Plot data with choropleth or symbol overlays.
- GanttView: Ideal for project planning.
- PivotChart: A visual complement to pivot table summaries.
With over 80 chart types at your disposal, FlexChart empowers C# developers to create dashboards and reports that not only look good but also deliver actionable insights. Whether you’re visualizing sales trends, analyzing stock movement, or breaking down category performance, the right chart type is just a property setting away.