Here's my code which works well in UWP but does not work in Android:
LineSeries costLineSeries = new LineSeries();
LineSeries totBenLineSeries = new LineSeries();
LineSeries hardBenLineSeries = new LineSeries();
ObservableCollection<ChartDataPoint> costData = new ObservableCollection<ChartDataPoint>();
ObservableCollection<ChartDataPoint> totBenData = new ObservableCollection<ChartDataPoint>();
ObservableCollection<ChartDataPoint> hardBenData = new ObservableCollection<ChartDataPoint>();
for (int i = 0; i < App.currentProject.PaybackPeriod + 1; i++)
{
costData.Add(new ChartDataPoint("Year " + i.ToString(), App.finGraph[0, i]));
totBenData.Add(new ChartDataPoint("Year " + i.ToString(), App.finGraph[1, i]));
hardBenData.Add(new ChartDataPoint("Year " + i.ToString(), App.finGraph[2, i]));
}
costLineSeries.Label = "Cumulative Costs";
totBenLineSeries.Label = "Cumulative Total Benefits";
hardBenLineSeries.Label = "Cumulative Hard Benefits";
costLineSeries.ItemsSource = costData;
costLineSeries.XBindingPath = "XValue";
costLineSeries.YBindingPath = "YValue";
totBenLineSeries.ItemsSource = totBenData;
totBenLineSeries.XBindingPath = "XValue";
totBenLineSeries.YBindingPath = "YValue";
hardBenLineSeries.ItemsSource = hardBenData;
hardBenLineSeries.XBindingPath = "XValue";
hardBenLineSeries.YBindingPath = "YValue";
//chtBreakEven.Series.Add(benSeries);
chtBreakEven.Series.Add(costLineSeries);
chtBreakEven.Series.Add(totBenLineSeries);
chtBreakEven.Series.Add(hardBenLineSeries);
chtBreakEven.Title = new ChartTitle { Text = "Breakeven Analysis" };
ColumnSeries colSeries = new ColumnSeries();
ColumnSeries colSeriesHard = new ColumnSeries();
// ObservableCollection<ChartDataPoint> cashFlowdata = new ObservableCollection<ChartDataPoint>();
// ObservableCollection<ChartDataPoint> hardCashFlowdata = new ObservableCollection<ChartDataPoint>();
ObservableCollection<graphData> cashFlowdata = new ObservableCollection<graphData>();
ObservableCollection<graphData> hardCashFlowdata = new ObservableCollection<graphData>();
if (App.finGraph == null)
return;
for (int i = 0; i < App.currentProject.PaybackPeriod + 1; i++)
{
graphData cashFlowDataPoint = new graphData();
cashFlowDataPoint.label = "Year " + i.ToString();
cashFlowDataPoint.datapoint = App.finGraph[3, i];
cashFlowdata.Add(cashFlowDataPoint);
graphData hardCashFlowDataPoint = new graphData();
hardCashFlowDataPoint.label = "Year " + i.ToString();
hardCashFlowDataPoint.datapoint = App.finGraph[4, i];
hardCashFlowdata.Add(hardCashFlowDataPoint);
//cashFlowdata.Add(new graphData() ChartDataPoint("Year " + i.ToString(), App.finGraph[3, i]));
//hardCashFlowdata.Add(new ChartDataPoint("Year " + i.ToString(), App.finGraph[4, i]));
}
colSeries.ItemsSource = lstCostRows;
colSeries.XBindingPath = "CostName";
colSeries.YBindingPath = "TotalCost";
colSeries.Label = "Hard and Soft Benefits";
colSeriesHard.ItemsSource = hardCashFlowdata;
colSeriesHard.XBindingPath = "label";
colSeriesHard.YBindingPath = "datapoint";
colSeriesHard.Label = "Hard Benefits Only";
chtCashFlowColumn.Series.Add(colSeries);
chtCashFlowColumn.Series.Add(colSeriesHard);
chtCashFlowColumn.Title = new ChartTitle { Text = "Cash Flow" };
Hi Sree Sundaram,
We have analyzed the provided code snippet and we suspect that you were missed to add the chart Axis for the chart. We would like to let you know that for Cartesian series it is mandatory to set the PrimaryAxis and SecondaryAxis for the chart as per in the below code example.
|
SfChart chart = new SfChart();
//Initializing Primary Axis CategoryAxis primaryAxis = new CategoryAxis(); chart.PrimaryAxis = primaryAxis;
//Initializing Secondary Axis NumericalAxis secondaryAxis = new NumericalAxis(); chart.SecondaryAxis = secondaryAxis; … |
|
<chart:SfChart x:Name="chart"> <chart:SfChart.PrimaryAxis> <chart:CategoryAxis/> </chart:SfChart.PrimaryAxis> <chart:SfChart.SecondaryAxis> <chart:NumericalAxis/> </chart:SfChart.SecondaryAxis> |
Please refer below link for more details
https://help.syncfusion.com/xamarin/charts/getting-started#initialize-chart
Note: Axis is not required for the accumulation series types like Pie and Doughnut series, but axis is required for all other cartesian series.
Please let us know if you need any further assistance.
Regards,
Devakumar D
Thank you Devakumar. That fixed the problem. You might need to update the documentation to include your guidance.
Sree
Hi Sree Sundaram,
We are glad to know that the provided solution works.
Thank you for providing feedback to help us improve our documentation.
Regards,
Devakumar D