如何使用AChartEngine - Android绘制双Y轴(辅助Y轴)

时间:2013-08-16 21:43:57

标签: java android achartengine

我有两个数据系列,有两个不同的Y轴和一个X轴。我试图绘制双Y轴(或在Excel中称为辅助Y轴),以便缩放图表。但是我只为这两个数据系列获得了一个Y轴。注意:我使用的是AChartEngine 1.1.0

任何人都可以提供建议。

我的代码在下面给出了截图。

public class LineChart {
    public Intent getIntent(Context context){

        int[] x = {1,2,3,4,5,6,7,8,9,10};
        int[] y = {22,45,34,45,55,65,74,85,93,100};

        TimeSeries series = new TimeSeries("Data1");
        for(int i = 0; i<x.length; i++){
            series.add(x[i], y[i]);
        }

        int[] x2 = {1,2,3,4,5,6,7,8,9,10};
        int[] y2 = {223,454,334,454,554,655,745,855,935,510};

        TimeSeries series2 = new TimeSeries("Data2");
        for(int i = 0; i<x.length; i++){
            series2.add(x2[i], y2[i]);
        }


        //Multiple Series Data Set
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
        dataset.addSeries(series); //First Data Series
        dataset.addSeries(series2); //Second Data Series

        //Multiple Series Renderer
        XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(2);
        //Background
        mRenderer.setApplyBackgroundColor(true);
        mRenderer.setBackgroundColor(Color.BLACK);
        //mRenderer.setMarginsColor(Color.parseColor("#F5F5F5"));
        //Grid
        mRenderer.setShowGridY(true);
        mRenderer.setShowGridX(true);
        mRenderer.setGridColor(Color.WHITE);
        //Label
        mRenderer.setLabelsTextSize(14);
        mRenderer.setXLabelsColor(Color.GREEN);
        //Min and Max
        mRenderer.setXAxisMax(series.getMaxX());
        mRenderer.setXAxisMin(series.getMinX());

        //Dual yaxis
        mRenderer.setYLabelsColor(0, Color.GREEN);
        mRenderer.setYLabelsColor(1, Color.RED); 
        mRenderer.setYTitle("Y-AXIS1", 0);
        mRenderer.setYTitle("Y-AXIS2", 1);
        mRenderer.setYAxisAlign(Align.LEFT, 0);
        mRenderer.setYAxisAlign(Align.RIGHT, 1);
        mRenderer.setYLabelsAlign(Align.LEFT, 0);
        mRenderer.setYLabelsAlign(Align.RIGHT, 1);


        //First Series - Single Series Renderer
        XYSeriesRenderer renderer = new XYSeriesRenderer();
        renderer.setColor(Color.RED);
        renderer.setPointStyle(PointStyle.CIRCLE);
        renderer.setFillPoints(true);

        //Second Series - Single Series Renderer
        XYSeriesRenderer renderer2 = new XYSeriesRenderer();
        renderer2.setColor(Color.GREEN);
        renderer2.setPointStyle(PointStyle.CIRCLE);
        renderer2.setFillPoints(true);

        //Add renderers to multiple series Renderer
        mRenderer.addSeriesRenderer(renderer);
        mRenderer.addSeriesRenderer(renderer2);


        Intent intent = ChartFactory.getLineChartIntent(context, dataset, mRenderer, "Line Graph Title");

        return intent;
    }

}

Screenshot Here

1 个答案:

答案 0 :(得分:0)

最后,我使用此示例完成了它 - here