Android - How to implement a line chart using Achartengine

I am new to Graph concept in android. In my application, I want to implement a line chart using achartingin. I have a demo version of achartengine, it consists of a lot of code. I can not understand the line graph. I want a simple line chart using achartingin. Please someone can help me.

thanks

+4
source share
1 answer


The following method generates random points (x, y) and adds them to the XYSeries (this is a series of points that will be plotted).

private XYMultipleSeriesDataset getDemoDataset() { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); final int nr = 7; Random r = new Random(); for (int i = 0; i < SERIES_NR; i++) { XYSeries series = new XYSeries("Demo series " + (i + 1)); for (int k = 0; k < nr; k++) { series.add(k, 20 + r.nextInt() % 100); } dataset.addSeries(series); } return dataset; } 

The following method will return several renderers that are used to draw line charts.

 private XYMultipleSeriesRenderer getDemoRenderer() { XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); renderer.setAxisTitleTextSize(12); renderer.setChartTitleTextSize(12); renderer.setLabelsTextSize(15); renderer.setLegendTextSize(15); renderer.setPointSize(5f); renderer.setMargins(new int[] { 20, 30, 15, 0 }); XYSeriesRenderer r = new XYSeriesRenderer(); r.setColor(Color.BLACK); r.setPointStyle(PointStyle.CIRCLE); r.setFillBelowLine(false); r.setFillPoints(true); renderer.addSeriesRenderer(r); setChartSettings(renderer); return renderer; } 

The following method will set the preferences for your chart. You can look for additional options in the documents provided by AChartEngine.

 private void setChartSettings(XYMultipleSeriesRenderer renderer) { renderer.setChartTitle("Chart demo"); renderer.setXTitle("x values"); renderer.setYTitle("y values"); renderer.setApplyBackgroundColor(false); renderer.setRange(new double[] {0,6,-70,40}); renderer.setFitLegend(false); renderer.setAxesColor(Color.BLACK); renderer.setShowGrid(true); renderer.setXAxisMin(0.5); renderer.setXAxisMax(10.5); renderer.setYAxisMin(0); renderer.setZoomEnabled(false); renderer.setYAxisMax(30); } 

Now you can get a line chart in two ways:

  • A diagram as a view that can be added to any layout:

    ChartFactory.getLineChartView(this, getDemoDataset(), getDemoRenderer());

  • Chart as intention for new alltogether action

    ChartFactory.getLineChartIntent(this, getDemoDataset(), getDemoRenderer());

PS: SERIES_NR is a constant that shows how many lines you want to draw.

+14
source

All Articles