Reputation: 10915
There are different ways about how the data of a Infragistics Linechart can be initialized. However, I would like to use its Property 'DataSource' and format the data before, since I already use this for other charts too.
So I would prefer this way:
UltraChart1.DataSource = myDataSource
Against this (Whole example with NumericTimeSeries is here)
Dim series1 As New NumericTimeSeries
series1.Label = "Series1"
series1.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-4), 12346, "Januar", True))
series1.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-3), 10000, "Februar", True))
series1.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-2), 14000, "März", True))
series1.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-1), 18000, "April", True))
series1.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(10), 800, "Mai", True))
Dim series2 As New NumericTimeSeries
series2.Label = "Series2"
series2.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-8), 500, "Januar", True))
series2.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-6), 350, "Februar", True))
series2.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-4), 600, "März", True))
series2.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(-2), 800, "April", True))
series2.Points.Add(New NumericTimeDataPoint(DateTime.Now.AddMonths(10), 800, "Mai", True))
UltraChart1.Series.Add(series1)
UltraChart1.Series.Add(series2)
However, my question is of how to format the DataSource, that it actually shows up more than one series.
No matter what I try, I'm only getting one Series in the Linechart.
The result should look something like this
We are using an abstract of a datatable, which works fine for the other ChartTypes (PieChart, Stackbar, etc.). A good example of how to achieve this, would really be appreciated.
Upvotes: 0
Views: 4181
Reputation: 10915
This answer has been provided by the infragistics team and worked out for me: http://www.infragistics.com/community/forums/p/80325/406159.aspx#406159
Option 1: You could create a one or more series and bind each of them using the code:
series2 = new NumericSeries();
series2.DataBind(dt,"2008", "Month");
series2.Label ="Year 2008";
series2.PEs.Add(new PaintElement(Color.Blue));
myColumnLayer.Series.Add(series2);
ultraChart1.CompositeChart.Series.Add(series2);
Option 2:
series3 =new NumericSeries();
series3.Data.DataSource = dt;
series3.Data.ValueColumn ="2009";
series3.Data.LabelColumn ="Month";
series3.Label ="Year 2009";
series3.PEs.Add(new PaintElement(Color.Yellow));
myColumnLayer.Series.Add(series3);
ultraChart1.CompositeChart.Series.Add(series3);
Upvotes: 2