当前位置: 首页 > 知识库问答 >
问题:

从JFreeChart获取多个数据集

蔡晨
2023-03-14

我使用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; 
 }

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

共有1个答案

戚侯林
2023-03-14

如果我理解正确,您想从CompletedDataset检索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);

    }
 类似资料:
  • 表 1:发票(inv_id、inv_value、cust_id) 表 2:客户(cust_id、sales_rep) 表 3:成员(Member_id、member_cateogry、member_type、cust_id) 注1:每个客户支付多张发票。(一对多关系)。< br >注2:每个客户为一个或多个会员付费(因此一个客户可能与多个会员相关)。< br >注3:每个成员都有一个类别,可以是1

  • 我有一个问题,从多个路径从Firebas eDatabase获取数据。我正在编写一个Endomondo克隆,我有一个数据库结构如下: 现在我想在feed选项卡中列出我朋友的所有锻炼。所以要做到这一点,我需要做三件事。 1)遍历我的配置文件(user_1)以获取我所有朋友的ID。 2)当我拥有这些ID时,我需要迭代它们的配置文件以获得它们的名称来显示。 3)遍历锻炼以获得我朋友的所有锻炼。 现在我想

  • 我正在构建一个小应用程序,以便在Laravel7中试验多对多关系。此应用程序涉及项目和用户(多对多)。 经过身份验证的用户可以创建新项目。每个项目都有自己的页面。在项目页面上,将呈现一个列表,其中包含作为该项目成员的每个用户的名称,在每个名称旁边是一个按钮,该按钮将从该项目中删除特定用户/成员。 现在,我被困在“删除用户”功能上。我不明白如何获取列表中每个用户的id,并将其传递给将“分离”多对多关

  • 我试图从获取数据。总共有9个表格,我必须相应地从所有表格中显示产品列表。 我考虑过使用连接,并尝试了左连接,如下所示: 这里是主表,pid是从tbl2到tbl9的所有表的。 注意:这里我在所有表上使用了来避免长查询,但是在实际的数据库操作中,只提到特定的列来提高性能。 现在实际的问题是,我没有得到所有的记录从表使用左加入。只检索中对应的每个条目的最后一行。 我使用了GROUP BY来避免重复的左连

  • 问题内容: 日志,为什么? 问题答案: 为了详细说明@Raynos所说的内容,您定义的函数是一个异步回调。它不会立即执行,而是在文件加载完成后执行。当您调用readFile时,将立即返回控件并执行下一行代码。因此,当您调用console.log时,尚未调用您的回调,并且尚未设置此内容。欢迎使用异步编程。 示例方法 或者更好的是,如Raynos的示例所示,将您的调用包装在一个函数中并传递您自己的回调