jingwenjingwen 2014-06-25
使用方法参考前面柱状图,下面定义线性图类
package com.example.test.achartengine;
import java.util.ArrayList;
import java.util.List;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.view.View;
public class LinearChart {
public AbstractDemoChart abstractDemoChart;
public XYMultipleSeriesRenderer renderer;
public XYMultipleSeriesDataset dataset;
private String[] titles;
private List<double[]> Xvalues = new ArrayList<double[]>();
private List<double[]> Yvalues = new ArrayList<double[]>();
private int[] colors;
private PointStyle[] styles;
public LinearChart(Context context) {
abstractDemoChart = new AbstractDemoChart();
init();
}
private void init() {
titles = new String[] { "Monday", "Tuesday", "Wednesday", "Thursday" };
for (int i = 0; i < titles.length; i++) {
Xvalues.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
}
Yvalues.add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4, 26.1, 23.6, 20.3, 17.2, 13.9 });
Yvalues.add(new double[] { 10, 10, 12, 15, 20, 24, 26, 26, 23, 18, 14, 11 });
Yvalues.add(new double[] { 5, 5.3, 8, 12, 17, 22, 24.2, 24, 19, 15, 9, 6 });
Yvalues.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 });
colors = new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW };
styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND, PointStyle.TRIANGLE, PointStyle.SQUARE };
renderer = abstractDemoChart.buildRenderer(colors, styles);
dataset = abstractDemoChart.buildDataset(titles, Xvalues, Yvalues);
// dataset.addSeries(series);
}
public View execute(Context context) {
int lenght = renderer.getSeriesRendererCount();
for (int i = 0; i < lenght; i++) {
((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);
}
abstractDemoChart.setChartSettings(renderer, "Temperatuer", "Week", "Temp", 0, 13, -10, 30, Color.LTGRAY, Color.LTGRAY);
renderer.setXLabels(12);
renderer.setYLabels(10);
renderer.setShowGrid(true);
renderer.setXLabelsAlign(Align.RIGHT);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setZoomButtonsVisible(false);
renderer.setPanEnabled(true, false); // 左右移动
renderer.setPanLimits(new double[] { -10, 20, -10, 40 });
renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });
// XYSeries series = dataset.getSeriesAt(0);
// series.addAnnotation("Vacation", 6, 30);
return ChartFactory.getLineChartView(context, dataset, renderer);
}
}