创建数据集的方法:
private static DefaultPieDataset getPieDataset(List<ChartObject> list)
{
DefaulPieDataset dataset = new DefaultPieDataset();
for(ChartObject object : list)
dataset.setValues(object.getKey(), object.getValueX());
return dataset;
}
我的列表包含三个具有以下值的对象:
键:HIGH值:9
关键:MEDIUM价值:30
键:低值:46
但我的饼图只显示两个类别LOW&amp;介质。 HIGH完全被忽略了。
快速Google搜索向我显示我们可以设置阈值聚合较低的值,因此我给了它一个镜头,并将我的函数的返回类型更改为PieDataSet,并将return语句更改为:
return DatasetUtilities.createConsolidatedPieDataset(dataset, "Other", 0);
但仍然没有运气。
如何强制JFreeChart不要忽略较低的值。
答案 0 :(得分:2)
我猜测你的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));
}