【发布时间】:2016-04-11 13:06:24
【问题描述】:
我必须使用JFreeChart API 实现直方图。这个直方图必须代表这个 JTable 的数据:
所以我有一个包含三列的 JTable:“thea”、“type”、“Number of occurrences”。我的直方图有两个目标:第一个是统计每个 thea 字段的出现次数;二是用不同颜色标记JTable不同类型记录对应的条形。
为了实现我的直方图,我使用了DefaultCategoryDataset:
private DefaultCategoryDataset createDataset(ArrayList<String>fieldsOccs) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(int i = 0; i<this.fieldsOccs.size() && i<end; i++) {
String thea = fieldsOccs.get(i).getFieldName();
String type = fieldsOccs.get(i).getType();
int occurrences = fieldsOccs.get(i).getOccurrences();
dataset.setValue(occurrences, type, thea);
}
return dataset;
}
然后我使用createChart 方法创建图表:
private JFreeChart createChart(DefaultCategoryDataset dataset) {
JFreeChart chart = ChartFactory.createBarChart(
"",
"", //X-axis title
"", //Y-axis title
dataset, //dataset
PlotOrientation.HORIZONTAL, //plot orientation
true, //show legends
true, //use tooltips
false //generate URLs
);
return chart;
}
正如您在图片中看到的那样,这并不好看。 x 轴上的值格式不正确。
如何解决这个渲染问题?
--编辑
我有这个问题只是在 JTable 中有更多类型的情况下。例如,如果我的 JTable 是:
--edit1
你觉得StackedBarChart3D怎么样?我得到这个输出:
【问题讨论】:
标签: java swing jfreechart