Screenshot of the NPlot charting library for .NET. Features a 2D candleplot, filled region, line plot and datetime axis.
Supported Platforms: .NET (WinForms)
Dimension Support : 2D
User Control Interface: ?
Data Binding Support: ?
Tutorials: 1/5
User Base: 1/5
License/Price: Open Source
Graphing program that hasn’t had much development recently, but still relatively powerful. Nice interactive scaling/scrolling features of graphs, making it easy to look at lots of data on one chart! Owing to the age and little popularity for this control, tutorials and help are severely limited.
OxyPlot is a good plotting control when you are using WPF (Windows Presentation Foundation). It uses portable class libraries (PCL), so the same assembly can be used with WinForms, WPF, Silverlight and Windows Store apps. However, this causes a error message to appear in the visual designer when using the PCL library in a WPF application created with Visual Studio 2012. It still compiles/runs fine, it just prevents the graph from being seen visually at design time. This error is discussed extensively here, and a workaround package OxyPlot.Wpf_NoPCL created.
Smoothing The Lines
OxyPlot has the ability to smooth out plot lines automatically, which can be enabled with the following code.
1
2
3
4
LineSeries ls = new LineSeries();
// Automatically smooth pointsls.smooth = true;
RadChart
Screenshot of the Telerik charting library for .NET applications. Comes with some very nice skins and tutorials.
Supported Platforms: .NET (WinForms, WPF)
Dimension Support : 2D
User Control Interface:
Data Binding Support: Database, XML, DataSet, List, Array
Tutorials: 5/5
User Base: 4/5
License/Price: Yearly License Fee
Although slightly expensive, this is awesome graph/charting software (and not limited to just graphs either).
privatevoid DrawInstantaneousGraph(RadChart radChart) {
radChart.ChartTitle.TextBlock.Text = "Instantanious CDC Values";
// Set-up bar chart radChart.Series.Clear();
// Y-Axis Setup radChart.PlotArea.YAxis.AutoScale = false;
radChart.PlotArea.YAxis.Step = 1000;
radChart.PlotArea.YAxis.MaxValue = 41000;
radChart.PlotArea.YAxis.MinValue = 31000;
radChart.PlotArea.YAxis.Appearance.MajorGridLines.Width = 5000;
radChart.PlotArea.YAxis.Appearance.MajorGridLines.Visible = false;
radChart.PlotArea.YAxis.Appearance.MinorGridLines.Width = 1000;
radChart.PlotArea.YAxis.Appearance.MinorGridLines.Visible = false;
radChart.PlotArea.YAxis.AxisLabel.Visible = false;
ChartSeries chartSeries = new ChartSeries();
chartSeries.Type = ChartSeriesType.Bar;
// Get the last datarow from the dataTable DataRow dataRow0 = serialStreamDecoder1.dataTable1.Rows.Find(serialStreamDecoder1.dataTable1.Rows.Count - 1);
for (int i = 0; i < dataNames.Count(); i++) {
ChartSeriesItem chartSeriesItem = new ChartSeriesItem();
// Increment x to spread bars across the graph (otherwise they will be// piled ontop of one-another) chartSeriesItem.XValue = i;
// Assign dataIList from table chartSeriesItem.YValue = dataRow0.Field<int>(dataNames[i]);
// Assign name to bar on graph chartSeriesItem.Name = dataNames[i];
chartSeries.AddItem(chartSeriesItem);
}
// Add the collection of data points to the graph radChart.AddChartSeries(chartSeries);
radChart.Refresh();
}
ZedGraph
Screenshot of the ZedGraph charting library for .NET. One of the most powerful and widely used free charting libraries.
Supported Platforms: .NET (Windows Forms)
Dimension Support : 2D
User Control Interface: Yes (zoom, scale, save to image)
Data Binding Support: Arrays
Tutorials: 3/5
User Base: 4/5
Licnese/Price: Free/Open Source
Probably the most powerful and easy-to-use free graphing utility out there if you just want to draw 2D graphs. Fast drawing and not system resource intensive. Supports only Windows Forms, and not WPF. However, you can still use ZedGraph in a WPF application by embedding the ZedGraph in a WindowsFormsHost object in the WPF project. See here for detailed instructions.