jfreechart icon indicating copy to clipboard operation
jfreechart copied to clipboard

there is wrong line displayed when using XYSplineRenderer

Open mysjz-qingquanshishangliu opened this issue 4 years ago • 1 comments

java code, 

public class JasperCreatePdf {

    public static void main(String[] args) throws JRException {
        String jrxml = "D:\\user_core_time_trend.jrxml";
        JasperReport report = JasperCompileManager.compileReport(jrxml);

        Map<String, Object> parameters = new HashMap<String, Object>();
        List<TimeSeriesBean> charsDSJobWallTime = new ArrayList<TimeSeriesBean>();
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:00:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:01:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:02:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:03:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:04:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:05:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:06:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:07:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:08:00", "yyyy-MM-dd HH:mm:ss"), 20));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:09:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:10:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:11:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:12:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:13:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:14:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:15:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:16:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:17:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:18:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:19:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:20:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:21:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:22:00", "yyyy-MM-dd HH:mm:ss"), 0));
        charsDSJobWallTime.add(new TimeSeriesBean("lxd", DateUtil.string2Date("2020-08-12 00:23:00", "yyyy-MM-dd HH:mm:ss"), 0));
        parameters.put("charsDS", charsDSJobWallTime);

        JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
        String desFilePath = "D:\\test12.pdf";
        JasperExportManager.exportReportToPdfFile(jasperPrint, desFilePath);

    }

}

I am using the jfreechart_1.0.19.jar, and using the XYSplineRenderer to render the line. you can get the data source is 0 0 0 0 0 0 20 0 0 0 0 0. but I get the wrong line like the attached the screenshot(the red part).

wrong_line

This looks like the expected result. As suggested here and here, you might review your expectation or precision.

trashgod avatar Aug 22 '20 23:08 trashgod