使用 JFreeChart 的箱线图

Box plot using JFreeChart

首先,我是 Java 和 Whosebug 的新手。所以我希望我的问题能够足够清楚。

我的目标是使用 jfreechart 创建一个箱线图来跟踪每天使用的测量值。我想通过存储最少量的数据来做到这一点。通过存储均值、标准差、中位数、1Q、3Q、最小值和最大值的统计量。然后应该通过测量的每一天的箱形图将其可视化。

我看过这里的箱线图演示 http://www.java2s.com/Code/Java/Chart/JFreeChartBoxAndWhiskerDemo.htm

在此演示中,他们创建了数据集并将所有值添加到数据集,然后将其添加到图中。数据集本身包含 return 数据集的平均值、中位数等的方法,以便能够创建绘图。请参阅下面的代码,了解上面 link 中的演示片段。

    DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset();
    //some type of algorithm to add values to the dataset
    dataset.add(//values, series and type here);
    // Return the finished dataset
    CategoryAxis xAxis = new CategoryAxis("Type");
    NumberAxis yAxis = new NumberAxis("Value");
    yAxis.setAutoRangeIncludesZero(false);
    BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    renderer.setFillBox(false);
    renderer.setToolTipGenerator(new BoxAndWhiskerToolTipGenerator());
    CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis,
            renderer);

    JFreeChart chart = new JFreeChart("Box-and-Whisker Demo",
            new Font("SansSerif", Font.BOLD, 14), plot, true);

所以我的问题是,我应该如何添加中位数、Q1、Q3、平均值、最小值和最大值来创建箱线图?因为在上面的演示中,他们基于完整样本集的情节。

您可以创建自己的数据集 class 并使用它来创建图表。

创建您自己的 BoxAndWhiskerCategoryDataset 实现并使用它代替 DefaultBoxAndWhiskerCategoryDataset