I am unable to plot multiple series in achartengine. If I add a second series to the dataset, then it just doesn't work, it crashes actually. With only one series added to the dataset, the code works fine.
Debugging shows, that it crashes when here when doing this : ChartFactory.getLineChartView(context, dataset, seriesRenderer);
Here is the code snippet, any help would be greatly appreciated.
public class LineGraph {
public View getView(Context context) {
int x[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int y[] = {30,34,25,45,5,30,20,25,29,30,10,20,30,40,50,60,70,60,50,40};
TimeSeries series = new TimeSeries("Scores");
TimeSeries lineSeries = new TimeSeries("Line");
for(int i=0;i<x.length;i++) {
series.add(x[i], y[i]);
series.addAnnotation(i + "", x[i], y[i]+5);
lineSeries.add(x[i], y[i]+10);
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
dataset.addSeries(lineSeries);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setFillPoints(true);
renderer.setColor(Color.WHITE);
renderer.setLineWidth(2f);
XYMultipleSeriesRenderer seriesRenderer = new XYMultipleSeriesRenderer();
seriesRenderer.addSeriesRenderer(renderer);
seriesRenderer.setShowAxes(false); // show both axes
seriesRenderer.setShowLegend(false);
seriesRenderer.setShowLabels(false);
seriesRenderer.setZoomButtonsVisible(false); // bye bye zoom
//seriesRenderer.setMargins(new int[] {1, 1, 1, 10});
seriesRenderer.setXAxisMin(0);
seriesRenderer.setXAxisMax(10);
seriesRenderer.setTextTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/Lifestyle Rounded M54.ttf"));
seriesRenderer.setPointSize(10f);
seriesRenderer.setPanEnabled(true, false);
seriesRenderer.setGridColor(Color.GRAY);
View view = ChartFactory.getLineChartView(context, dataset, seriesRenderer);
return view;
}
}
And here is how I am using it :
public class PerformanceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_performance);
Utils.overrideFonts(this, findViewById(android.R.id.content));
LineGraph lineGraph = new LineGraph();
View graphView = lineGraph.getView(getApplicationContext());
RelativeLayout graphHolder = (RelativeLayout)findViewById(R.id.rl_graph);
graphHolder.addView(graphView);
}