2014-06-24 4 views
0

JFreeChart를 사용하여 동일한 그래프에 2 개의 데이터 세트를 사용하고 있습니다. 나는 점들이 그래프 상에 얼마나 유사한지를 비교하려고 노력하고 있는데, 따라서 이전에 차트에 넣은 2 개의 데이터 세트에 대한 액세스가 필요하지만, 어떤 이유로이 정보를 추출하지 못하는 것 같습니다. 여기JFreeChart에서 여러 데이터 세트 받기

데이터가 입력되는 방식이다

private static IntervalXYDataset createDataset() 
{ 
    DefaultXYDataset completeDataset = new DefaultXYDataset(); 

    //populate with simulated data 
    double[][] sim = new double[2][simData.size()]; 
    for(int i = 0; i < simData.size(); i++){ 
     sim[0][i] = simData.get(i).getOne(); 
     sim[1][i] = simData.get(i).getTwo(); 
    } 

    //populated with known experimental data   
    double[][] exp = new double[2][expData.size()]; 
    for(int i = 0; i < expData.size(); i++){ 
     exp[0][i] = expData.get(i).getOne(); 
     exp[1][i] = expData.get(i).getTwo(); 
    } 

    completeDataset.addSeries("Simulated", sim); 
    completeDataset.addSeries("Experimental", exp); 

    XYBarDataset dataset = new XYBarDataset(completeDataset, .1); 

    return dataset; 
} 

데이터는 초기에 한 쌍으로 저장되어 있지만, 이것은 I 그래프는 올바르게 표시로 데이터가 입력되는 것을 알고있다. 이 데이터 세트에서 두 시리즈를 반환하려면 어떻게해야합니까?

답변

2

정확하게 이해하면 completeDataset에서 2 개의 데이터 세트를 검색하고 싶습니까?

DefaultXYDataset에는 몇 가지 제한 사항이 있으므로 해결 방법으로 다음과 같이 시도해 볼 수 있습니다. 이 일부 조정 :

completeDataset .addSeries("Simulated", sim); //"Simulated" will be at position 0 
    completeDataset .addSeries("Experimental", exp); //"Experimental" will be at position 1 

    //get series length 
    int countSeries1 = completeDataset.getItemCount(0); //number of items in Simulated 
    int countSeries2 = completeDataset.getItemCount(1); //number of items in Experimental 

    double[][] series1 = new double[2][countSeries1]; 
    double[][] series2 = new double[2][countSeries2]; 

    //recreate Simulated series 
    for(int i = 0; i < countSeries1; i++){ 

     series1[0][i] = completeDataset.getXValue(0, i); 
     series1[1][i] = completeDataset.getYValue(0, i); 

    } 
    //recreate Experimental series 
    for(int i = 0; i < countSeries2; i++){ 

     series2[0][i] = completeDataset.getXValue(1, i); 
     series2[1][i] = completeDataset.getYValue(1, i); 

    } 
+0

이 귀하의 질문에 대답 했을해야 할 수도 있습니다, 그래서 나는 그것을 테스트하지 않았습니다? –

+0

마치 completeDataset에 getSeries() 함수가없는 것처럼 보입니다. – bforcer

+1

답변을 수정했습니다. 데이터 집합을 검색하는 데 도움이되기를 바랍니다. 그렇지 않은 경우 시리즈 저장 및 검색을 위해 XYSeriesCollection을 살펴 보는 것이 좋습니다. –

관련 문제