Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JFreeChart获取多个数据集_Java_Jfreechart - Fatal编程技术网

Java 从JFreeChart获取多个数据集

Java 从JFreeChart获取多个数据集,java,jfreechart,Java,Jfreechart,我使用JFreeChart在同一个图形上有两个数据集。我试图比较图表上的点的相似程度,因此我需要访问我之前放入图表中的两个数据集,但由于某种原因,我似乎无法提取这些信息 以下是数据的输入方式: private static IntervalXYDataset createDataset() { DefaultXYDataset completeDataset = new DefaultXYDataset(); //populate with simulated data

我使用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; 
 }
private static IntervalXYDataset createDataset()
{
DefaultXYDataset completeDataset=新的DefaultXYDataset();
//用模拟数据填充
double[]sim=新的double[2][simData.size();
对于(int i=0;i

数据最初是成对存储的,但我知道数据是输入的,因为图形正确地显示了数据。如何返回此数据集中的两个系列?

如果我理解正确,您希望从CompletedDataset中检索两个数据集

由于DefaultXYDataset有一些限制,您可以尝试这样的解决方法。我还没有测试它,所以可能需要一些调整:)

completeDataset.addSeries(“模拟”,sim)//“模拟”将位于位置0
addSeries(“实验”,exp)//“实验性”将位于位置1
//获取序列长度
int countSeries1=completeDataset.getItemCount(0)//模拟中的项目数
int countSeries2=completeDataset.getItemCount(1)//实验项目数
double[]series1=新的double[2][countSeries1];
double[]series2=新的double[2][countSeries2];
//重新创建模拟系列
对于(int i=0;i
这是否回答了您的问题?出于某种原因,completeDataset似乎没有函数getSeries()。我已编辑了我的答案。希望这有助于检索您的数据集。如果没有,那么值得一看存储和检索序列的XYSeriesCollection。我支持Frank d的最后一条评论…使用XYSeries/XYSeriesCollection将使代码更加直观。
    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);

    }