2011-09-11 5 views
0

저는 AChartEngine을 사용하여 Android로 차트를 작성하기 위해 XYseries 데모를 수정했습니다. 두 번째 배열을 새로운 시리즈로 추가하지 않습니다. 여기 내 코드가있다.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

동일한 데이터 포인트를 두 번 추가합니다. . 외부 루프의 두 반복에 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]까지이고 두 번째 시리즈는 testArray[10]에서 testArray[19]까지입니다.

+0

빙고, 평소처럼 존의 대답은 간결하고 정확합니다. 감사합니다 존, 당신은 심각한 "머리를 두드리는 소리"를 예방했습니다. –

관련 문제