文档库 最新最全的文档下载
当前位置:文档库 › jfreechart的用法解说

jfreechart的用法解说

jfreechart的用法解说
jfreechart的用法解说

Jfreechart的基础图表用法与在web项目中调用

下面是我自己学习时测试的例子,一天就可以搞定,写的比较简单,基本的功能都有,具体的属性百度,一般的都有解答,希望能够对你们有所帮助

jar包环境

到官网https://www.wendangku.net/doc/2614933525.html,/jfreechart/下载资源包文件

将包文件放到你的项目里面,直接写java类,可以在java 类的main方法里面直接生成图片

如例子

public class BarChartDemo {

/**

* 获取一个演示用的组合数据集对象

*

* @return

*/

private static CategoryDataset getDataSet() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "北京", "苹果");

dataset.addValue(120, "上海", "苹果");

dataset.addValue(160, "广州", "苹果");

dataset.addValue(210, "北京", "梨子");

dataset.addValue(220, "上海", "梨子");

dataset.addValue(230, "广州", "梨子");

dataset.addValue(330, "北京", "葡萄");

dataset.addValue(340, "上海", "葡萄");

dataset.addValue(340, "广州", "葡萄");

dataset.addValue(420, "北京", "香蕉");

dataset.addValue(430, "上海", "香蕉");

dataset.addValue(400, "广州", "香蕉");

dataset.addValue(510, "北京", "荔枝");

dataset.addValue(530, "上海", "荔枝");

dataset.addValue(510, "广州", "荔枝");

return dataset;

}

/**

* 解决图表汉字显示问题

*

* @param chart

*/

private static void processChart(JFreeChart chart) {

CategoryPlot plot = chart.getCategoryPlot();

CategoryAxis domainAxis = plot.getDomainAxis();

ValueAxis rAxis = plot.getRangeAxis();

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASIN G,

RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

TextTitle textTitle = chart.getTitle();

textTitle.setFont(new Font("宋体", Font.PLAIN, 20));

domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));

//3d时设置

/* BarRenderer3D renderer = (BarRenderer3D) plot.getRenderer();

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱子上显示文字

renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

renderer.setItemLabelsVisible(true);*/

//2d

BarRenderer renderer = (BarRenderer) plot.getRenderer();

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱子上显示文字

renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

renderer.setItemLabelsVisible(true);

}

/**

* 输出图片

*

* @param chart

*/

private static void writeChartAsImage(JFreeChart chart) { FileOutputStream fos_jpg = null;

try {

fos_jpg = new FileOutputStream("D:\\test\\fruit.jpg");

ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300, null);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

fos_jpg.close();

} catch (Exception e) {

}

}

}

public void createZhu(){

// 1. 得到数据

CategoryDataset dataset = getDataSet();

// 2. 构造chart

JFreeChart chart = ChartFactory.createBarChart3D(

"水果产量图", // 图表标题

"水果", // 目录轴的显示标签--横轴

"产量", // 数值轴的显示标签--纵轴

dataset, // 数据集

PlotOrientation.VERTICAL, // 图表方向:水平、

true, // 是否显示图例(对于简单的柱状图必须

false, // 是否生成工具

false// 是否生成URL链接

);

// 3. 处理chart中文显示问题

processChart(chart);

// 4. chart输出图片

writeChartAsImage(chart);

// 5. chart 以swing形式输出

ChartFrame pieFrame = new ChartFrame("XXX", chart);

pieFrame.pack();

pieFrame.setVisible(true);

}

public static void main(String[] args) throws IOException { BarChartDemo demo = new BarChartDemo();

//demo.createZhu();//3d条形图

}

效果图如下

饼状图代码

//3D饼状图

public void createPieChart3D() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("苹果", 250);

dataset.setValue("桔子", 350);

dataset.setValue("梨子", 200);

dataset.setValue("香蕉", 50);

dataset.setValue("荔枝", 150);

JFreeChart chart = ChartFactory.createPieChart3D("水果产量比率图", dataset,

true, true, true);

TextTitle textTitle = chart.getTitle();

textTitle.setFont(new Font("黑体",Font.BOLD,15));//标题设置字体

PiePlot3D plot = (PiePlot3D) chart.getPlot();

plot.setLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 15));

plot.setLabelGenerator(new

StandardPieSectionLabelGenerator("{0},{1},({2})",

NumberFormat.getNumberInstance(),

new DecimalFormat("0.00%")));

chart.getLegend().setItemFont(new Font("宋体",Font.BOLD, 15));

// 设置开始角度

plot.setStartAngle(150D);

// 设置方向为"顺时针方向"

plot.setDirection(Rotation.CLOCKWISE);

// 设置透明度,0.5F为半透明,1为不透明,0为全透明

plot.setForegroundAlpha(1F);

// 没有数据的时候显示的内容

plot.setNoDataMessage("无数据显示");

// 背景色设置

plot.setBackgroundPaint(ChartColor.WHITE);

try {

ChartUtilities.saveChartAsPNG(new

File("D:\\test\\PieChart3D.png"),

chart, 800, 500);

} catch (IOException e) {

e.printStackTrace();

}

}

//2d饼状图代码

//柱状2d柱状

public void createColumnChart() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "北京", "苹果");

dataset.addValue(100, "上海", "苹果");

dataset.addValue(100, "广州", "苹果");

dataset.addValue(200, "北京", "梨子");

dataset.addValue(200, "上海", "梨子");

dataset.addValue(200, "广州", "梨子");

dataset.addValue(300, "北京", "葡萄");

dataset.addValue(300, "上海", "葡萄");

dataset.addValue(300, "广州", "葡萄");

dataset.addValue(400, "北京", "香蕉");

dataset.addValue(400, "上海", "香蕉");

dataset.addValue(400, "广州", "香蕉");

dataset.addValue(500, "北京", "荔枝");

dataset.addValue(500, "上海", "荔枝");

dataset.addValue(500, "广州", "荔枝");

JFreeChart chart = ChartFactory.createBarChart("水果产量图", "水量", "产量",

dataset, PlotOrientation.VERTICAL, true, true, true);

processChart(chart);

try {

ChartUtilities.saveChartAsPNG(new

File("D:\\test\\ColumnChart.png"),

chart, 800, 500);

} catch (IOException e) {

e.printStackTrace();

}

}

2d折线图代码

//2d折线图

public void createLineChart() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "北京", "苹果");

dataset.addValue(200, "上海", "苹果");

dataset.addValue(300, "广州", "苹果");

dataset.addValue(400, "北京", "梨子");

dataset.addValue(500, "上海", "梨子");

dataset.addValue(600, "广州", "梨子");

dataset.addValue(700, "北京", "葡萄");

dataset.addValue(800, "上海", "葡萄");

dataset.addValue(900, "广州", "葡萄");

dataset.addValue(800, "北京", "香蕉");

dataset.addValue(700, "上海", "香蕉");

dataset.addValue(600, "广州", "香蕉");

dataset.addValue(500, "北京", "荔枝");

dataset.addValue(400, "上海", "荔枝");

dataset.addValue(300, "广州", "荔枝");

JFreeChart chart = ChartFactory.createLineChart("水果产量图 ", "水果", "产量",

dataset, PlotOrientation.VERTICAL, true, true, true);

CategoryPlot plot = chart.getCategoryPlot();

plot.setBackgroundPaint(ChartColor.WHITE); // 背景色设置

plot.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置

CategoryAxis domainAxis = plot.getDomainAxis();

ValueAxis rAxis = plot.getRangeAxis();

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASIN G,

RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

TextTitle textTitle = chart.getTitle();

textTitle.setFont(new Font("宋体", Font.PLAIN, 20));

domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));

LineAndShapeRenderer renderer = (LineAndShapeRenderer)

plot.getRenderer();

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱子上显示文字

renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

renderer.setItemLabelsVisible(true);

try {

ChartUtilities.saveChartAsPNG(new

File("D:\\test\\LineChart.png"),

chart, 800, 500);

} catch (IOException e) {

e.printStackTrace();

}

}

3d折线图代码

public void createLineChart3D() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(300, "北京", "苹果");

dataset.addValue(100, "上海", "苹果");

dataset.addValue(900, "广州", "苹果");

dataset.addValue(200, "北京", "梨子");

dataset.addValue(200, "上海", "梨子");

dataset.addValue(700, "广州", "梨子");

dataset.addValue(300, "北京", "葡萄");

dataset.addValue(300, "上海", "葡萄");

dataset.addValue(300, "广州", "葡萄");

dataset.addValue(400, "北京", "香蕉");

dataset.addValue(800, "上海", "香蕉");

dataset.addValue(400, "广州", "香蕉");

dataset.addValue(100, "北京", "荔枝");

dataset.addValue(500, "上海", "荔枝");

dataset.addValue(500, "广州", "荔枝");

JFreeChart chart = ChartFactory.createLineChart3D("水果产量图 ", "水果", "产量",

dataset, PlotOrientation.VERTICAL, true, true, true);

CategoryPlot plot = chart.getCategoryPlot();

plot.setBackgroundPaint(ChartColor.WHITE); // 背景色设置

plot.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置

CategoryAxis domainAxis = plot.getDomainAxis();

ValueAxis rAxis = plot.getRangeAxis();

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASIN G,

RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

TextTitle textTitle = chart.getTitle();

textTitle.setFont(new Font("宋体", Font.PLAIN, 20));

domainAxis.setTickLabelFont(new Font("sans-serif",

Font.PLAIN, 11));

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));

LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱子上显示文字

renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

renderer.setItemLabelsVisible(true);

try {

ChartUtilities.saveChartAsPNG(new

File("D:\\test\\LineChart3D.png"),

chart, 800, 500);

} catch (IOException e) {

e.printStackTrace();

}

}

点与折线结合的图代码如下

package chart.demo02;

import java.awt.Font;

import java.io.File;

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.NumberAxis;

import org.jfree.chart.axis.ValueAxis;

import https://www.wendangku.net/doc/2614933525.html,bels.StandardPieSectionLabelGenerator; import https://www.wendangku.net/doc/2614933525.html,bels.StandardXYToolTipGenerator;

import org.jfree.chart.plot.PiePlot3D;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.chart.title.TextTitle;

import org.jfree.data.xy.XYDataset;

import org.jfree.data.xy.XYSeries;

import org.jfree.data.xy.XYSeriesCollection;

//点状图与折线一起显示

public class pointAndLine {

public static void main(String[] args) {

JFreeChart chart = createChart(createDataset());

try {

TextTitle textTitle = chart.getTitle();

textTitle.setFont(new Font("黑体",Font.BOLD,15));//标题设置字体

ChartUtilities.saveChartAsPNG(new

File("D:\\test\\pointAndLine.png"),

chart, 800, 500);

} catch (IOException e) {

e.printStackTrace();

}

}

private static XYDataset createDataset()

{

XYSeries xyseries = new XYSeries("点状图");

xyseries.add(1.0D, 1.0D);

xyseries.add(2D, 4D);

xyseries.add(3D, 3D);

xyseries.add(4D, 5D);

xyseries.add(5D, 5D);

xyseries.add(6D, 7D);

xyseries.add(7D, 7D);

xyseries.add(8D, 8D);

XYSeries xyseries1 = new XYSeries("折线图");

xyseries1.add(1.0D, 5D);

xyseries1.add(2D, 7D);

xyseries1.add(3D, 6D);

xyseries1.add(4D, 8D);

xyseries1.add(5D, 4D);

xyseries1.add(6D, 4D);

xyseries1.add(7D, 2D);

xyseries1.add(8D, 1.0D);

XYSeriesCollection xyseriescollection = new

XYSeriesCollection();

xyseriescollection.addSeries(xyseries);

xyseriescollection.addSeries(xyseries1);

return xyseriescollection;

}

private static JFreeChart createChart(XYDataset xydataset)

{

JFreeChart jfreechart = ChartFactory.createXYLineChart("点图与折线图", "X轴", "Y轴", xydataset, PlotOrientation.VERTICAL, true, true, false);

XYPlot xyplot = (XYPlot)jfreechart.getPlot();

ValueAxis valueAxis=xyplot.getDomainAxis(); //x轴

valueAxis.setLabelFont( new Font("黑体",

Font.BOLD, 12)); //x轴字体

XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer();

xylineandshaperenderer.setSeriesLinesVisible(0, false);

xylineandshaperenderer.setSeriesShapesVisible(1, false);

xylineandshaperenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());

xyplot.setRenderer(xylineandshaperenderer);

NumberAxis numberaxis = (NumberAxis)xyplot.getRangeAxis();//y轴// 设置y轴上的字体

numberaxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 13));

// 设置y轴上的标题字体

numberaxis.setLabelFont(new Font("宋体", Font.PLAIN, 13));

jfreechart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 13)); //x副标题的字体

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

return jfreechart;

}

}

结果

Web项目中jsp调用

在web.xml中配置信息

DisplayChart

org.jfree.chart.servlet.DisplayChart

DisplayChart

/DisplayChart

1.jsp例子基础调用

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page

import="org.jfree.chart.*,org.jfree.chart.plot.*,https://www.wendangku.net/doc/2614933525.html,be ls.*,

org.jfree.data.category.*,java.awt.*,org.jfree.ui.*,org.jfree.chart.r enderer.category.BarRenderer,

org.jfree.chart.servlet.*,org.jfree.chart.plot.PlotOrientation,java.a wt.*"%>

<%@page import="org.jfree.chart.axis.CategoryAxis"%>

<%@page import="org.jfree.chart.axis.ValueAxis"%>

jfreeChart报表显示

<%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(390, "中国", "河南");

dataset.addValue(220, "中国", "河北");

dataset.addValue(510, "中国", "辽宁");

dataset.addValue(580, "中国", "山东");

dataset.addValue(320, "中国", "山西");

dataset.addValue(410, "中国", "陕西");

JFreeChart chart = ChartFactory.createBarChart("苹果年产量统计图",

"省份",

"产量(万吨)",

dataset,

PlotOrientation.HORIZONTAL,

false,

false,

false);

chart.getTitle().setFont((new Font("宋体", Font.PLAIN, 16)));

if(chart.getLegend()!=null)

chart.getLegend().setItemFont(new Font("宋体",Font.BOLD, 14));

CategoryPlot plot = chart.getCategoryPlot();

//设置网格背景颜色

plot.setBackgroundPaint(Color.white);

//设置网格竖线颜色

plot.setDomainGridlinePaint(Color.pink);

//设置网格横线颜色

plot.setRangeGridlinePaint(Color.pink);

CategoryAxis domainAxis = plot.getDomainAxis();

ValueAxis rAxis = plot.getRangeAxis();

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

//显示每个柱的数值,并修改该数值的字体属性

BarRenderer renderer = new BarRenderer();

renderer.setBaseItemLabelGenerator(new

StandardCategoryItemLabelGenerator());

renderer.setBaseItemLabelsVisible(true);

//默认的数字显示在柱子中,通过如下两句可调整数字的显示

//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题renderer.setBasePositiveItemLabelPosition(new

ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,

TextAnchor.BASELINE_RIGHT));

renderer.setItemLabelAnchorOffset(20D);

plot.setRenderer(renderer);

String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);//

String graphURL = request.getContextPath() + "/chart?filename=" + filename;

%>

Jsp显示效果

注意ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);默认生成的图片是放到了tomcat的temp临时文件里面

如果你要自己指定文件录入,可以定义一个类继承ServletUtilities类在saveChartAsPNG方法中执行设置你的路径

如的例子

package chart.demo02;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartRenderingInfo;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.servlet.ServletUtilities;

public class JFChartUtils extends ServletUtilities {

private static String tempFilePrefix = "jfreechart-";

private static String tempOneTimeFilePrefix= "jfreechart-onetime-";

public static String saveChartAsPNG(String path,JFreeChart chart, int width,

int height, ChartRenderingInfo info, HttpSession session)

throws java.io.IOException {

try{

if (chart == null)

throw new IllegalArgumentException("Null 'chart' argument.");

//项目部署的绝对路径

String chartDir

="F:\\apache-tomcat-6.0.30\\webapps\\jfreeChart\\chart";

//将文件用年月日保存

createTempDir(chartDir);

String prefix = tempFilePrefix;

if (session == null)

prefix = tempOneTimeFilePrefix;

File tempFile = File.createTempFile(prefix, ".png", new

File(chartDir));

ChartUtilities.saveChartAsPNG(tempFile, chart, width, height, info);

if (session != null)

registerChartForDeletion(tempFile, session);

return tempFile.getName();

}catch(Exception ex){

ex.printStackTrace();

return"";

}

}

protected static void createTempDir(String path) {

if (path == null)

throw new RuntimeException(

"Temporary directory system property (java.io.tmpdir) is null.");

File tempDir = new File(path);

if (!tempDir.exists())

tempDir.mkdirs();

}

}

我将文件放到自己的项目jfreeChart的chart文件下面

在jsp中获取文件名称时对应的也要改

如下面

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page

import="org.jfree.chart.*,org.jfree.chart.plot.*,https://www.wendangku.net/doc/2614933525.html,be ls.*,

org.jfree.data.category.*,java.awt.*,org.jfree.ui.*,org.jfree.chart.r enderer.category.BarRenderer,

org.jfree.chart.servlet.*,org.jfree.chart.plot.PlotOrientation,java.a wt.*"%>

<%@page import="org.jfree.chart.axis.CategoryAxis"%>

<%@page import="org.jfree.chart.axis.ValueAxis"%>

<%@page import="chart.demo02.JFChartUtils"%>

jfreeChart报表显示

<%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(390, "中国", "河南");

dataset.addValue(220, "中国", "河北");

dataset.addValue(510, "中国", "辽宁");

dataset.addValue(580, "中国", "山东");

dataset.addValue(320, "中国", "山西");

dataset.addValue(410, "中国", "陕西");

JFreeChart chart = ChartFactory.createBarChart("苹果年产量统计图",

"省份",

"产量(万吨)",

dataset,

PlotOrientation.HORIZONTAL,

false,

false,

false);

chart.getTitle().setFont((new Font("宋体", Font.PLAIN, 16)));

if(chart.getLegend()!=null)

chart.getLegend().setItemFont(new Font("宋体",Font.BOLD, 14));

CategoryPlot plot = chart.getCategoryPlot();

//设置网格背景颜色

plot.setBackgroundPaint(Color.white);

//设置网格竖线颜色

plot.setDomainGridlinePaint(Color.pink);

//设置网格横线颜色

plot.setRangeGridlinePaint(Color.pink);

CategoryAxis domainAxis = plot.getDomainAxis();

ValueAxis rAxis = plot.getRangeAxis();

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));

domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));

//显示每个柱的数值,并修改该数值的字体属性

BarRenderer renderer = new BarRenderer();

renderer.setBaseItemLabelGenerator(new

StandardCategoryItemLabelGenerator());

renderer.setBaseItemLabelsVisible(true);

//默认的数字显示在柱子中,通过如下两句可调整数字的显示

//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题renderer.setBasePositiveItemLabelPosition(new

ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,

TextAnchor.BASELINE_RIGHT));

renderer.setItemLabelAnchorOffset(20D);

plot.setRenderer(renderer);

String filename = JFChartUtils.saveChartAsPNG(null,chart, 500, 300, null, session);//自定义的ServletUtilities

String graphURL = basePath+"chart/"+filename;//request.getContextPath() + "/chart?filename=" + filename;

%>

效果图也一样的,此时生成的文件在tomcat的chart文件下面就会有一个对应的图片。因为

图片是每刷新一次就生成一个图片,可以写个java定时(可以凌晨时,一天清理一次)类进行

清除图片

相关文档