2011-09-11 3 views
0

私はAChartEngineを使ってAndroidでチャート作成するためのXYseriesデモを修正しました。 2番目の配列を新しい系列として追加しません。ここに私のコードです。series.addに新しいシリーズが追加されない

private XYMultipleSeriesDataset getDemoDataset() { 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    final int nr = 10; 


    double[] test1=new double[] {121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0}; 
    double[] test2=new double[] {131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0}; 

    double[] testArray= new double[test1.length + test2.length]; 
    System.arraycopy(test1, 0, testArray, 0, test1.length); 
    System.arraycopy(test2, 0, testArray, test1.length, test2.length); 

    for(double d:testArray){ 
    Log.i(MAIN_DEBUG_TAG, "testArray "+d); 
    } 

     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, 120 + r.nextInt() % 100); 
    series.add(k, testArray[k]); 

    Log.i(MAIN_DEBUG_TAG, "series.add "+k +" "+test1[k]); 

    } 
    dataset.addSeries(series);   
    }   

     return dataset; 
    } 

Test1アレイが繰り返される。私がseries.add(k、120 + random)からコメントを削除すると、プロットする2系列のデータが生成されます。何か助けがありましたら、TIA

答えて

0

同じデータポイントを2回追加します。外側のループの両方の反復でtestArray[9]からtestArray[0]kは常に0から9となり、現在のコードがk以外のものに依存しません:。

// No sign of anything that changes between iterations of the outer loop 
series.add(k, testArray[k]); 

方法について:

series.add(k, testArray[k + i * nr]); 

そのようにすれば、最初のシリーズはtestArray[0]からtestArray[9]になり、2番目のシリーズはtestArray[10]からtestArray[19]になります。

+0

ビンゴ、いつものように、ジョンの答えは簡潔で正確です。ありがとうジョン、いくつかの深刻な "頭を打つ"を防ぎました。 –

関連する問題