Infragistics20.1 UltraDataChart基础用法汇总(二)进阶干货
按着官网的内容顺序,来看一下各类Series可以使用什么样的系列。避免在实际操作的时候,遇到,X,Y轴的数据内容与图表样式不一致。导致异常。
如图:
还有单独提出来的
还有
还有金融方面的样式,我就不贴图了。有需要请私信。
===
UltraDataChart支持在同一图表绘图区域中绘制无限数量的Series。这是通过将各种类型的Series对象添加到UltraDataChart控件的Series集合中来完成的。添加到图表的每个系列必须具有一对适当类型的Axis和数据成员映射。
在绘制具有不同数据源的多个序列时,必须注意,当使用CategoryDateTimeXAxis或TimeXAxis绘制序列时,图表不会对齐多个数据源的项。因此,开发人员应通过在一个数据源与另一个数据源没有对应项的情况下插入空项来对齐数据项。
DataChart支持的系列有很多。同类的轴具有兼容性。所以。官方也给出了相关内容。
Stacked
就到这,后面懒得弄了。
使用类别系列组中的LineSeries类型和金融系列组中的FinancialPriceSeries类型。在此示例中,LineSeries将绘制股票交易量,而FinancialPriceSeries类型将绘制同一图表绘制区域中的股票价格(开盘价,最高价,最低价和收盘价)。另外,这两个系列将共享x轴,以便水平对齐数据点。只要系列可用,就可以应用相同的逻辑以任何组合绘制其他类型的系列。
不同系列叠加
代码如下:
var volumeYAxis = new NumericYAxis();
var priceYAxis = new NumericYAxis();
var sharedXAxis = new CategoryXAxis(); // set location for the axes
sharedXAxis.LabelLocation = AxisLabelsLocation.OutsideBottom;
volumeYAxis.LabelLocation = AxisLabelsLocation.OutsideRight;
priceYAxis.LabelLocation = AxisLabelsLocation.OutsideLeft;
// add created axes to the chart
this.DataChart.Axes.Add(volumeYAxis);
this.DataChart.Axes.Add(priceYAxis);
this.DataChart.Axes.Add(sharedXAxis);
// create a series for displaying stock volume
var volumeSeries = new LineSeries();
volumeSeries.ValueMemberPath = "Volume";
volumeSeries.XAxis = sharedXAxis;
volumeSeries.YAxis = volumeYAxis;
// create a series for displaying stock price values
var priceSeries = new FinancialPriceSeries();
priceSeries.HighMemberPath = "High";
priceSeries.LowMemberPath = "Low";
priceSeries.OpenMemberPath = "Open";
priceSeries.CloseMemberPath = "Close";
priceSeries.XAxis = sharedXAxis;
priceSeries.YAxis = priceYAxis;
// add created series to the chart
this.DataChart.Series.Add(priceSeries);
this.DataChart.Series.Add(volumeSeries);
就是,合并共用Series。那么,如果是相同Series,则可以同时展现多个状态的同步进度。
控件还可以做到多重叠加,代码我不处理了。主要就是共用Y轴,而且,折现和柱形可以一起呈现。
// ... var sharedYAxis = new NumericYAxis(); var categoryXAxis1 = new CategoryXAxis(); var categoryXAxis2 = new CategoryXAxis(); // add created axes to the chart this.DataChart.Axes.Add(categoryXAxis1); this.DataChart.Axes.Add(categoryXAxis2); this.DataChart.Axes.Add(sharedYAxis); // create overlaid column series var columnSeries1 = new ColumnSeries(); columnSeries1.ValueMemberPath = "Coal"; columnSeries1.XAxis = categoryXAxis1; columnSeries1.YAxis = sharedYAxis; var columnSeries2 = new ColumnSeries(); columnSeries2.ValueMemberPath = "Hydro"; columnSeries2.XAxis = categoryXAxis2; columnSeries2.YAxis = sharedYAxis; // create a line series var lineSeries = new LineSeries(); lineSeries.ValueMemberPath = "Nuclear"; lineSeries.XAxis = categoryXAxis1; lineSeries.YAxis = sharedYAxis; // add created series to the chart this.DataChart.Series.Add(columnSeries1); this.DataChart.Series.Add(columnSeries2); this.DataChart.Series.Add(lineSeries);
共享相同x轴的多个列系列以簇的形式呈现,其中每个簇代表一个数据点(图4)。UltraDataChart控件的Series集合中的第一个系列呈现为群集左侧的一列。每个连续的系列均显示在上一个系列的右侧。
没有图,直接上代码。
// ... var sharedYAxis = new NumericYAxis(); var sharedXAxis = new CategoryXAxis(); // add created axes to the chart this.DataChart.Axes.Add(sharedYAxis); this.DataChart.Axes.Add(sharedXAxis); // create clustered column series var columnSeries1 = new ColumnSeries(); columnSeries1.ValueMemberPath = "Coal"; columnSeries1.XAxis = sharedXAxis; columnSeries1.YAxis = sharedYAxis; var columnSeries2 = new ColumnSeries(); columnSeries2.ValueMemberPath = "Hydro"; columnSeries2.XAxis = sharedXAxis; columnSeries2.YAxis = sharedYAxis; // create a line series var lineSeries = new LineSeries(); lineSeries.ValueMemberPath = "Nuclear"; lineSeries.XAxis = sharedXAxis; lineSeries.YAxis = sharedYAxis; // add created series to the chart this.DataChart.Series.Add(columnSeries1); this.DataChart.Series.Add(columnSeries2); this.DataChart.Series.Add(lineSeries);
多系列的内容到此就结束了。还有一个关于图表的趋势线的点,后面单独再说吧。下一节,会有关于图表设置项的内容,可以控制图例之类的。这个比较有用。