在上一篇我们介绍了FlexChart与C1Chart的对比区别(.NET图表:C1Chart和FlexChart的对比分析(上)),本文就来接着介绍FlexChart的高级图表功能。
高级.NET图表能力
除了我们在上一篇文章中所介绍的新功能,FlexChart改进和补充了现有C1chart的特征。通过使用FlexChart,就可以向应用程序添加高级的图表能力。
多数据源
在FlexChart之前,我们使用ChartDataArray指定数据或是系列。使用ChartDataArray是一个多步骤的过程,需要将实际的数据源收集到一个数据组中,才能使用系列。
代码参考:
DataTable dt = //populate your table PointF[] arr = new PointF[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { arr[i] = new PointF{ X = (float)dt.Rows[i].ItemArray[0], Y = (float)dt.Rows[i].ItemArray[1] }; } c1Chart.ChartGroups[0].ChartData.SeriesList[0].PointData.CopyDataIn(arr);
使用FlexChart,你不再需要这些步骤,通过Series.DataSource属性可以直接指定数据源集合作为系列的数据源。
FlexChart代码:
DataTable dt = //populate your table
flexChart.Series[0].DataSource = dt;
FlexChart同样允许在同一个图表中使用不同的数据源组合数据然后显示他们。通过组合多个系列,与他们自有的数据源,可以有一个强大的可视化比较。
复合图表
在C1Charts中,可以通过制定每个ChartGroup的ChartType显示复合图表。然而只有两个ChartGroups,因此局限了只能显示两种类型。
C1Chart代码:
c1Chart1.ChartGroups[0].ChartType = Chart2DTypeEnum.Bar; c1Chart1.ChartGroups[1].ChartType = Chart2DTypeEnum.XYPlot;
FlexChart解决了这个问题,它提供了Series.ChartType属性,可以单独的指定图表类型。这样在FlexChart中,就不存在系列数量的限制,你可以创建不同类型的复合图表。
FlexChart代码:
flexChart.Series[0].ChartType = ChartType.Column; flexChart.Series[1].ChartType = ChartType.Line; flexChart.Series[2].ChartType = ChartType.LineSymbols;
多轴
在C1Chart中,我们最多可以使用3个轴:主轴X和Y,以及附属轴:Y2。这对需求有限制。
FlexChart移除了这种限制,你可以通过系列来指定附属轴。你可以通过添加附属X和Y轴到图表实现多轴。也可以简单的指定一个轴对象的AxisX和AxisY属性。
到此,我们介绍了C1Chart和FlexChart的对比区别。如果有兴趣,可以阅读更多的资源。
更多资源:
FlexChart控件介绍:/developer/componentone/flexchart
FlexChart在线演示:/developer/componentone/flexchart
FlexChart产品文档:http://helpcentral.componentone.com/nethelp/FlexChartWin/FlexChartFundamentals.htm
FlexChart各个平台的功能:http://helpcentral.componentone.com/nethelp/FlexChartWin/FeatureComparison.htm
如果依然有问题,可以到我们的官方产品论坛发帖咨询:http://gcdn.grapecity.com.cn/showforum-140.html