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呀,请大侠们指教

解决方案 »

  1.   

    getItemCount
    getChartData
    在索引上对的整齐的吗?
      

  2.   

    to gemouzhi(gemouzhi):
    我检查过数据,发现数据不是连续的,所以在LineChart中只显示了间断的点,而不连线。不过,我在生成TimeSeriesChart时,给定的数据也不是连续的,JfreeChart却可以把这些不连续的点给自动连起来。现在我在LineChart中也希望能把这些不连续的点给连续起来,却找不到相应的API,试过了lineAndShapeRenderer.setLinesVisible(true);也不起作用。请指教该如何把这些点全都连起来,谢谢