jsp JFreeChart使用心得与例子

JFreeChart是一个Java开源的图表库,可以创建各种类型的图表,包括折线图、散点图、柱状图等等。JFreeChart的使用非常灵活,可以通过Java代码生成图表,也可以使用JSP等Web技术生成图表。

JSP JFreeChart使用心得与例子

简介

JFreeChart是一个Java开源的图表库,可以创建各种类型的图表,包括折线图、散点图、柱状图等等。JFreeChart的使用非常灵活,可以通过Java代码生成图表,也可以使用JSP等Web技术生成图表。

这篇文章主要介绍使用JSP结合JFreeChart生成图表的方法,并给出两个示例。

实现

引入JFreeChart

在使用JFreeChart前,需要先将JFreeChart的jar包引入项目中。可以从JFreeChart官网下载最新版本的jar包,也可以从Maven仓库中下载。将下载好的jar包放置到项目的classpath中。

生成折线图

首先,我们需要生成数据,并将数据传递给JFreeChart。下面是一个生成随机数据的方法。

private static XYDataset createDataset() {
    XYSeries series = new XYSeries("Random Data");
    Random r = new Random();
    for (int i = 0; i < 10; i++) {
        series.add(i, r.nextDouble() * 100);
    }
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);
    return dataset;
}

然后,我们需要将数据传递给JFreeChart,并生成图像。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // create dataset
    XYDataset dataset = createDataset();

    // create chart
    JFreeChart chart = ChartFactory.createXYLineChart(
            "Random Data",
            "X",
            "Y",
            dataset,
            PlotOrientation.VERTICAL,
            true,
            true,
            false
    );

    // set response content type
    response.setContentType("image/png");

    // create output stream
    OutputStream out = response.getOutputStream();

    // write chart to output stream
    ChartUtilities.writeChartAsPNG(out, chart, 400, 300);

    // close output stream
    out.close();
}

最后,我们可以在JSP页面中使用<img>标签将生成的图像嵌入到页面中。

<img src="chart" />

生成饼状图

生成饼状图的方法与生成折线图的方法类似。

首先,我们需要生成数据,并将数据传递给JFreeChart。下面是一个生成随机数据的方法。

private static PieDataset createDataset() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    Random r = new Random();
    for (int i = 1; i <= 5; i++) {
        dataset.setValue("Category " + i, r.nextInt(100));
    }
    return dataset;
}

然后,我们需要将数据传递给JFreeChart,并生成图像。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // create dataset
    PieDataset dataset = createDataset();

    // create chart
    JFreeChart chart = ChartFactory.createPieChart(
            "Random Data",
            dataset,
            true,
            true,
            false
    );

    // set response content type
    response.setContentType("image/png");

    // create output stream
    OutputStream out = response.getOutputStream();

    // write chart to output stream
    ChartUtilities.writeChartAsPNG(out, chart, 400, 300);

    // close output stream
    out.close();
}

最后,我们可以在JSP页面中使用<img>标签将生成的图像嵌入到页面中。

<img src="chart" />

总结

通过以上两个示例,我们可以看到JSP结合JFreeChart生成图表非常简单。只需要将数据传递给JFreeChart,并将生成的图表写入输出流即可。有了这个基础,我们可以更加灵活地生成各种类型的图表,并将其嵌入到网页中。

本文标题为:jsp JFreeChart使用心得与例子

基础教程推荐