JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
- 使用JFreeChart先要导入两个包
jcommon-1.0.23.jar和jfreechart-1.0.19.jar - 下载地址
代码
- jsp部分
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>
<%@ page import="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection" %>
<%@ page import="org.jfree.chart.ChartRenderingInfo" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.chart.StandardChartTheme"%>
<%@ page import="java.awt.Font"%>
<%@ page import="younghd.MyDataBase" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="org.jfree.data.general.DefaultPieDataset" %>
<%
StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); //创建主题样式
standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20)); //设置标题字体
standardChartTheme.setRegularFont(new Font("微软雅黑", Font.PLAIN, 15)); //设置图例的字体
standardChartTheme.setLargeFont(new Font("微软雅黑", Font.PLAIN, 15)); //设置轴向的字体
ChartFactory.setChartTheme(standardChartTheme); //设置主题样式
DefaultCategoryDataset dataset1=new DefaultCategoryDataset(); //绘制柱状图的数据结构
DefaultPieDataset dpd = new DefaultPieDataset(); //绘制饼状图的数据结构
//从数据库中获得数据
//饼状图dpd.setValue(名称, 数量);
//柱状图为dataset1.addValue(数量,名称,月份);
MyDataBase db=new MyDataBase();
String sql="SELECT * FROM phone.num; ";
ResultSet rs= null;
try {
rs = db.inputSQL(sql);
while(rs.next())
{
int count=rs.getInt(1);
String name=rs.getString(2);
String month=rs.getString(3);
dataset1.addValue(count,name,month);
dpd.setValue(name, count);
}
} catch (SQLException e) {
e.printStackTrace();
}
db.close();
//创建柱状图JFreeChart组件的图表对象
JFreeChart chart=ChartFactory.createBarChart3D(
"手机销售情况", //图表标题
"季度", //x轴的显示标题
"销量(万台)", //y轴的显示标题
dataset1, //数据集
PlotOrientation.VERTICAL,//图表方向(垂直)
true, //是否包含图例
false, //是否包含提示
false //是否包含URL
);
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
String fileName=ServletUtilities.saveChartAsPNG(chart,370,240,info,session);
String url=request.getContextPath()+"/servlet/DisplayChart?filename="+fileName;
//创建饼状图的JFreeChart组件的图标对象
JFreeChart chart1 = ChartFactory.createPieChart("手机销售情况的百分比",dpd, true, false, false);
String fileName1 = ServletUtilities.saveChartAsPNG(chart1,370,240,session);
//ServletUtilities是面向web开发的工具类,返回一个字符串文件名,文件名自动生成,生成好的图片会自动放在服务器(tomcat)的临时文件下(temp)
String url1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName1;
//根据文件名去临时目录下寻找该图片,这里的/DisplayChart路径要与配置文件里用户自定义的<url-pattern>一致
%>
<html>
<head>
<title>绘制柱形图和饼状图</title>
</head>
<body topmargin="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <img src="<%=url %>"></td>
</tr>
<tr>
<td> <img src="<%=url1 %>"></td>
</tr>
</table>
</body>
</html>
web.xml配置servlet的路由地址
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
- 运行结果

JFreeChart是一个用于JAVA的开源图表库,支持创建各种图表,如饼图、柱状图、散点图和时序图等。它可以生成PNG、JPEG格式的图表,也能与PDF和Excel结合。本文将展示如何在JSP中使用JFreeChart,包括必要的包导入、下载链接和简单的代码示例。


被折叠的 条评论
为什么被折叠?



