package fansy.jfreechar.demo;
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class JfreecharDemo {
/**
* @param args
*/
public static void main(String[] args) {
// ChartUtilities t=new ChartUtilities();
// createChart();
}
public static JFreeChart createChart() {
StandardChartTheme standardChartTheme =
new StandardChartTheme("CN"); //创建主题样式
// standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20)); //设置标题字体
standardChartTheme.setExtraLargeFont(new Font("微软雅黑",Font.BOLD,20));
standardChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15)); //设置图例的字体
standardChartTheme.setLargeFont(new Font("仿宋", Font.PLAIN, 15)); //设置轴向的字体
// ChartFactory.setChartTheme(standardChartTheme); //设置主题样式
ChartFactory.setChartTheme(standardChartTheme);
//通过ChartFactory创建JFreeChart
JFreeChart chart = ChartFactory.createBarChart3D(
"JAVA图书销量统计", //图表标题
"JAVA图书", //横轴标题
"销量(本)", //纵轴标题
createDataSet(), //数据集合
PlotOrientation.VERTICAL, //图表方向
false, //是否显示图例标识
false, //是否显示tooltips
false); //是否支持超链接
return chart;
}
public static CategoryDataset createDataSet() {
//实例化DefaultCategoryDataset对象
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
//向数据集合中添加数据
dataSet.addValue(500, "JAVA图书", "J2SE类");
dataSet.addValue(100, "JAVA图书", "J2ME类");
dataSet.addValue(900, "JAVA图书", "J2EE类");
return dataSet;
}
}
测试显示图片使用的
jsp:
<%@ page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities,
fansy.jfreechar.demo.*"%>
<%@ page import="java.io.*" %>
<%@ page import="org.jfree.chart.ChartUtilities" %>
Java图书销量统计
<%
// PrintWriter w = new PrintWriter(out);//输出MAP信息
String fileName = ServletUtilities.saveChartAsJPEG(JfreecharDemo.createChart(),450,300,session);
// ChartUtilities.writeImageMap(w,"map0",false);
String graphURL = request.getContextPath()
+ "/DisplayChart filename=" + fileName;
%>
html>
刚开始的时候不知道怎么用的,只知道运行,然后看结果。结果就是没有图出来,原来图片都保存在了tomcat的temp目录下面了,所以就上网找改变jfreechar默认图片存放路径的代码,结果找了之后还是显示不出来。后来配置了web.xml并且使用原来的(即上面的代码,而非该默认保存路径的代码)就ok了,web.xml配置如下:
DisplayChart org.jfree.chart.servlet.DisplayChart DisplayChart /DisplayChart