I want to get some values from a table and store them in a multiple line chart. When I use only one column (fat) it displays a graph correctly, but when i add another column or two it gives me an error saying : Dataset and renderer should not be null and should not have the same number of series. Could you please help me fix the error?
public XYMultipleSeriesDataset getFatDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
Cursor c = database.rawQuery("select * from dailystats;", null);
float i = 1.0f;
c.moveToFirst();
XYSeries seriesFat = new XYSeries("Fat");
while(!c.isAfterLast()) {
seriesFat.add(i++, c.getDouble(2));
c.moveToNext();
}
dataset.addSeries(seriesFat);
i = 1.0f;
c.moveToFirst();
XYSeries seriesProtein = new XYSeries("Protein");
while(!c.isAfterLast()) {
seriesProtein.add(i++, c.getDouble(3));
c.moveToNext();
}
dataset.addSeries(seriesProtein);
c.moveToFirst();
i = 1.0f;
XYSeries seriesCarbs = new XYSeries("Carbs");
while(!c.isAfterLast()) {
seriesCarbs.add(i++, c.getDouble(4));
c.moveToNext();
}
dataset.addSeries(seriesCarbs);
return dataset;
}
And here is the code for generating the graph:
public class ChartActivity {
public Intent getIntent(Context context)
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer renderer = new XYSeriesRenderer();
mrenderer.addSeriesRenderer(renderer);
DatabaseAdapter dba = new DatabaseAdapter(context);
dba.open();
Intent intent = ChartFactory.getLineChartIntent(context, dba.getFatDataset(), mrenderer,"line graph");
dba.close();
return intent;
}
}