public static void generateLineChart(OutputStream out, ChartEntity chartEntity, int width, int height) {
try {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (int i = 0; i < chartEntity.getItemCount(); i++) {
ChartData chartData = chartEntity.getChartData(i);
dataset.addValue(chartData.getValue(), chartData.getSeries(), chartData.getSection());
System.out.println("[" + i + "] " + "[ '" + chartData.getSeries() + "' - '" + chartData.getSection() + "' - '" + chartData.getValue() + "' ]");
} JFreeChart chart = ChartFactory.createLineChart(
chartEntity.getTitle(),
chartEntity.getDomain(),
chartEntity.getRange(),
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
ChartUtilities.writeChartAsJPEG(out, chart, width, height);
} catch (Exception e) {
e.printStackTrace();
}
}以上代码中的ChartEntity和ChartData类是我自己定义的数据对象类,用于存放需要显示的图象数据。调用以上代码后,传入了三条线的数据,其中前两条线显示出来了,奇怪的是就是第三条显示不出来,可循环体里的那条打印语句却表明数据都是正确的。我用的JfreeChart版本是jfreechart-1.0.0-rc1,现在怀疑是不是此版有BUG呀,请大侠们指教
try {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (int i = 0; i < chartEntity.getItemCount(); i++) {
ChartData chartData = chartEntity.getChartData(i);
dataset.addValue(chartData.getValue(), chartData.getSeries(), chartData.getSection());
System.out.println("[" + i + "] " + "[ '" + chartData.getSeries() + "' - '" + chartData.getSection() + "' - '" + chartData.getValue() + "' ]");
} JFreeChart chart = ChartFactory.createLineChart(
chartEntity.getTitle(),
chartEntity.getDomain(),
chartEntity.getRange(),
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
ChartUtilities.writeChartAsJPEG(out, chart, width, height);
} catch (Exception e) {
e.printStackTrace();
}
}以上代码中的ChartEntity和ChartData类是我自己定义的数据对象类,用于存放需要显示的图象数据。调用以上代码后,传入了三条线的数据,其中前两条线显示出来了,奇怪的是就是第三条显示不出来,可循环体里的那条打印语句却表明数据都是正确的。我用的JfreeChart版本是jfreechart-1.0.0-rc1,现在怀疑是不是此版有BUG呀,请大侠们指教
getChartData
在索引上对的整齐的吗?
我检查过数据,发现数据不是连续的,所以在LineChart中只显示了间断的点,而不连线。不过,我在生成TimeSeriesChart时,给定的数据也不是连续的,JfreeChart却可以把这些不连续的点给自动连起来。现在我在LineChart中也希望能把这些不连续的点给连续起来,却找不到相应的API,试过了lineAndShapeRenderer.setLinesVisible(true);也不起作用。请指教该如何把这些点全都连起来,谢谢