JFreeChart 忽略饼图中较低的值

JFreeChart ignoring lower values in Pie Chart

创建数据集的方法:

private static DefaultPieDataset getPieDataset(List<ChartObject> list)
{
   DefaulPieDataset dataset = new DefaultPieDataset();
   for(ChartObject object : list)
       dataset.setValues(object.getKey(), object.getValueX());

   return dataset;
}

我的列表包含三个具有以下值的对象:

键:高值:9

键:中值:30

键:低值:46

但我的饼图只显示低和中两个类别。 HIGH 被完全忽略。

快速 Google 搜索告诉我我们可以设置阈值聚合较低的值所以我试了一下并将函数的 return 类型更改为 PieDataSet 和 return声明:

return DatasetUtilities.createConsolidatedPieDataset(dataset, "Other", 0);

但还是没有运气。

如何强制 JFreeChart 不忽略较低的值。

我猜你的 List<ChartObject> 不知何故是错误的,你的 getPieDataset() 没有编译。这是一个使用 Map<String, Integer>.

的示例

private Map<String, Integer> getData() {
    Map<String, Integer> map = new HashMap<>();
    map.put("High", 9);
    map.put("Medium", 30);
    map.put("Low", 46);
    return map;
}

private ChartPanel createPieChart() {
    DefaultPieDataset data = new DefaultPieDataset();
    for (Map.Entry<String, Integer> entry : getData().entrySet()) {
        data.setValue(entry.getKey(), entry.getValue());
    }
    return new ChartPanel(ChartFactory.createPieChart(
        "PieTest", data, true, true, false));
}