achartengine несколько строк в одном графике - PullRequest
3 голосов
/ 15 марта 2012

Я пытаюсь сделать две линии на графике в соответствии с этим видео: http://www.youtube.com/watch?v=5DGldVzC-bU

Мой код:

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


        int[] x = {1,2,3,4,5,6,7,8,9,10}; 
        int[] y = {31,29,54,94,75,36,47,118,92,10};



        TimeSeries series = new TimeSeries("Line1");
        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 = {39,145,35,87,2,65,48,49,100,106};

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



        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        dataset.addSeries(series);
        dataset.addSeries(series2);



        XYSeriesRenderer renderer = new XYSeriesRenderer();
        renderer.setColor(Color.CYAN);
        renderer.setPointStyle(PointStyle.SQUARE);
        renderer.setFillPoints(true);
        renderer.setLineWidth(3);
        renderer.setDisplayChartValues(true);

        XYSeriesRenderer renderer2 = new XYSeriesRenderer();
        renderer2.setColor(Color.BLACK);
        renderer2.setPointStyle(PointStyle.CIRCLE);
        renderer2.setFillPoints(true);
        renderer2.setLineWidth(3);
        renderer2.setDisplayChartValues(true);

        XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
        mrenderer.addSeriesRenderer(renderer);
        mrenderer.addSeriesRenderer(renderer2);

        mrenderer.setChartTitle("title");

        mrenderer.setBackgroundColor(Color.WHITE);

        mrenderer.setShowGrid(true);
        mrenderer.setApplyBackgroundColor(true);

        mrenderer.setXTitle("Days");
        mrenderer.setYTitle("datas");

        mrenderer.setGridColor(Color.GRAY);
    //  mrenderer.setZoomButtonsVisible(true);

        Intent intent = ChartFactory.getLineChartIntent(context, dataset, mrenderer, "Line graph title");
        return intent;

    }

Практически так же, как на видео. Но у меня не получается, вместо двух разных строк я получаю только одну. Когда последние данные первой строки (x) заканчиваются, они переходят к первым данным второй строки (x2), поэтому вторая строка продолжается с первой. Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 15 марта 2012

Не должно быть следующего:

series.add(x2[i],y2[i]);

быть на самом деле:

series2.add(x2[i],y2[i]);

Обратите внимание на '2'.

0 голосов
/ 30 сентября 2015
 TimeSeries series = new TimeSeries("Line1");
    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 = {39,145,35,87,2,65,48,49,100,106};

    TimeSeries series2 = new TimeSeries("Line2");
    for (int i=0;i<x2.length;i++){
        series2.add(x2[i],y2[i]); // The change is here...
    }
...