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使用心得与例子 - Python技术站