This example illustrates how to create a chart with multiple series placed in separate panes with an individual Y-axis. To accomplish this task you can create a secondary Y-axis item for each chart's Series and set its SeriesView.AxisY property to the newly created secondary axis.
Question Comments
Added By: Zhonglun Cai at: 5/5/2016 8:46:27 AM This doesn't work when the chart control's data source is set to a DataTable and a series template is used.
It works for the initial values. But whenever a row is added to the DataTable. The chart view and layout will broken. Any suggestion to that? Added By: Zhonglun Cai at: 5/5/2016 8:48:56 AM Here is the code to my problem:
[C#]usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingDevExpress.XtraCharts;namespaceDXApplication4{publicpartialclassForm1:DevExpress.XtraEditors.XtraForm{DataTable_table=newDataTable();publicForm1(){InitializeComponent();_table.Columns.Add("Index",typeof(int));_table.Columns.Add("Type",typeof(int));_table.Columns.Add("Value",typeof(int));for(inti=0;i<10;i++){_table.Rows.Add(i, 0,newRandom(i).Next(100));_table.Rows.Add(i, 1,newRandom(i+1).Next(100));_table.Rows.Add(i, 2,newRandom(i+5).Next(100));_table.Rows.Add(i, 3,newRandom(i+7).Next(100));}chartControl1.DataSource=_table;chartControl1.SeriesDataMember="Type";chartControl1.SeriesTemplate.View=newDevExpress.XtraCharts.StepLineSeriesView();chartControl1.SeriesTemplate.ArgumentDataMember="Index";chartControl1.SeriesTemplate.ValueDataMembers.AddRange(newstring[]{"Value"});for(inti= 0;i<chartControl1.Series.Count;i++)AddSeriesPaneToChart(i);}int_index= 1;privatevoidbarButtonItem1_ItemClick(objectsender,DevExpress.XtraBars.ItemClickEventArgse){_table.Rows.Add(_index, 0,newRandom(_index).Next(100));_table.Rows.Add(_index, 1,newRandom(_index+ 1).Next(100));_table.Rows.Add(_index, 2,newRandom(_index+ 5).Next(100));_table.Rows.Add(_index, 3,newRandom(_index+ 7).Next(100));_index++;}publicvoidAddSeriesPaneToChart(intindex){Seriesseries=chartControl1.Series[index];XYDiagramSeriesViewBaseview=(XYDiagramSeriesViewBase)series.View;XYDiagramdiag=chartControl1.DiagramasXYDiagram;intaxesPosition=diag.SecondaryAxesY.Add(newSecondaryAxisY());if(index> 0){XYDiagramPanepane=newXYDiagramPane();pane.SizeMode=PaneSizeMode.UseWeight;diag.Panes.Add(pane);diag.SecondaryAxesY[axesPosition].Alignment=AxisAlignment.Near;diag.SecondaryAxesY[axesPosition].GridLines.Visible=true;view.AxisY=diag.SecondaryAxesY[axesPosition];view.Pane=pane;}else{diag.SecondaryAxesY[index].Visibility=DevExpress.Utils.DefaultBoolean.False;view.AxisX.Label.Angle= 90;}}}}