如何从堆叠条形图(jFreeChart)中获取最大的Y值?

3
如何从创建的图表中获取最大轴值?
以下是创建方式:

代码示例:

final JFreeChart chart = ChartFactory.createStackedBarChart("", "", symbol, dataSet,PlotOrientation.VERTICAL, false, false, false);

我可能需要从图表中获取数据集,然后从中获取最大轴值。该数据集是DefaultCategoryDataset

1个回答

4

只需遍历 CategoryDataset 即可。

CategoryDataset dataset = createDataset();
for (int r = 0; r < dataset.getRowCount(); r++) {
    double max = Double.MIN_VALUE;
    for (int c = 0; c < dataset.getColumnCount(); c++) {
        Number number = dataset.getValue(r, c);
        double value = number == null ? Double.NaN : number.doubleValue();
        if (value > max) {
            max = value;
        }
    }
    System.out.println(dataset.getRowKey(r) + ": " + max);
}

使用示例数据集,生成以下输出:
第一项:5.0
第二项:8.0
第三项:6.0

1
谢谢!我只想补充一点(对于像我这样的其他人):数据集允许空值,因此在获取其double或任何值之前,请检查dataset.getValue(r, c)是否为null。 - nyxz
1
@Maistora:发现得很好!我更新了示例;Double.NaNunordered,并且始终比较为false - trashgod
如果我使用的是TimeTableXYDataset而不是CategoryDataset呢? - Line
我认为你可以循环遍历 getSeriesCount()getItemCount(),在此过程中检查 getY(s, i);如果你有问题,请联系我。 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接