`

jfreechart

    博客分类:
  • Web
阅读更多

http://dev.firnow.com/course/3_program/java/javajs/20090327/163636.html

写道
package com.ijo.footballdelta;

import junit.framework.TestCase;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.annotations.XYBoxAnnotation;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;

//JFreeChart LineXY Chart(折线图)
public class CreateJFreeChartXYLineTest extends TestCase {
/**
* 创建JFreeChart LineXY Chart(折线图)
*/
public void jFreeChar() {
//步骤1:创建XYDataset对象(准备数据)
XYDataset dataset = createXYDataset();
//步骤2:根据Dataset 生成 JFreeChart对象,以及做相应的设置
JFreeChart freeChart = createChart(dataset);
//步骤3:将JFreeChart对象输出到文件,Servlet输出流等
saveAsFile(freeChart, "/Users/17ijotechnologies/Desktop/1.png", 800, 600);
}

// 保存为文件
public static void saveAsFile(JFreeChart chart, String outputPath,
int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
// 保存为PNG
ChartUtilities.writeChartAsPNG(out, chart, 300, 200);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// do nothing
}
}
}
}

// 根据XYDataset创建JFreeChart对象
public static JFreeChart createChart(XYDataset dataset) {
// 创建JFreeChart对象:ChartFactory.createXYLineChart
JFreeChart jfreechart = ChartFactory.createXYLineChart("XYLine Chart Demo", // 标题
"X", // categoryAxisLabel (category 轴,横轴,X轴标签)
"Y", // valueAxisLabel(value 轴,纵轴,Y轴的标签)
dataset, // dataset
PlotOrientation.VERTICAL, true, // legend
false, // tooltips
false); // URLs

// 使用CategoryPlot设置各种参数。以下设置可以省略。
XYPlot plot = jfreechart.getXYPlot();
// LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
//设置第一条线有数据点
renderer.setSeriesLinesVisible(0, false);
renderer.setSeriesLinesVisible(1, true);
renderer.setSeriesLinesVisible(2, true);
renderer.setSeriesShapesVisible(0, true);
renderer.setSeriesShapesVisible(1, true);
renderer.setSeriesShapesVisible(2, true);
//renderer.setDrawOutlines(true);
//可以重新设置数据点颜色默认为白色方形
renderer.setUseFillPaint(true);
// renderer.isSeriesVisible()
//数据点填充颜色
renderer.setFillPaint(Color.yellow);
//设置数据点为圆形(x为上下偏离,y为左右偏离,w为圆形左右距离,h为圆形上下距离)
renderer.setSeriesShape(0, new Ellipse2D.Double(-1.0, -1.0, 5.0, 5.0));
// renderer.setSeriesShape(0, ShapeUtilities.createUpTriangle(3.0f));

// 背景色 透明度
plot.setBackgroundAlpha(0.5f);
// 前景色 透明度
plot.setForegroundAlpha(0.5f);
// 其它设置可以参考XYPlot类
// AbstractRenderer
XYBoxAnnotation box = new XYBoxAnnotation(0, 0, 2002, 60);
plot.addAnnotation(box);
plot.setRangeGridlinesVisible(false);
plot.setDomainGridlinesVisible(false);
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setAxisLineStroke(new BasicStroke(1.6f)); // 设置轴线粗细

rangeAxis.setAxisLinePaint(Color.BLACK); // 设置轴线颜色

rangeAxis.setUpperBound(50); // 设置坐标最大值

rangeAxis.setTickMarkStroke(new BasicStroke(1.6f)); // 设置坐标标记大小

rangeAxis.setTickMarkPaint(Color.BLACK); // 设置坐标标记颜色

rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 16)); // 设置坐标轴标题字体

rangeAxis.setLabelPaint(Color.BLACK); // 设置坐标轴标题颜色

rangeAxis.setLabelAngle(Math.PI / 2); // 设置坐标轴标题旋转角度


return jfreechart;
}

/**
* 创建XYDataset对象
*/
private static XYDataset createXYDataset() {
XYSeries xyseries1 = new XYSeries("One");
xyseries1.add(1980, 50);
xyseries1.add(1981, 49);
xyseries1.add(1982, 48);
xyseries1.add(1983, 47);
xyseries1.add(1984, 46);
xyseries1.add(1985, 45);
xyseries1.add(1986, 44);
xyseries1.add(1987, 43);
xyseries1.add(1988, 42);
xyseries1.add(1989, 41);
xyseries1.add(1990, 40);
xyseries1.add(1991, 39);
xyseries1.add(1992, 38);
xyseries1.add(1993, 37);
xyseries1.add(1994, 36);
xyseries1.add(1995, 35);
xyseries1.add(1996, 34);
xyseries1.add(1997, 33);
xyseries1.add(1998, 32);
xyseries1.add(2001, 33);
xyseries1.add(2002, 34);
xyseries1.add(2003, 35);
xyseries1.add(2004, 36);


XYSeries xyseries2 = new XYSeries("Three");
xyseries2.add(1987, 40);
xyseries2.add(1997, 30.0008);
xyseries2.add(2007, 38.24);

XYSeries xyseries3 = new XYSeries("Two");
for (int i = 1980; i < 2007; i++) {
Random rand = new Random();
xyseries3.add(i, rand.nextInt(50));
}

XYSeriesCollection xySeriesCollection = new XYSeriesCollection();

xySeriesCollection.addSeries(xyseries1);
xySeriesCollection.addSeries(xyseries2);
xySeriesCollection.addSeries(xyseries3);

return xySeriesCollection;
}

}
 
分享到:
评论

相关推荐

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    Jfreechart

    Jfreechart 乱码分析和解决方法

    JFreeChart双Y轴折线图实例,可以直接运行

    JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...

    jfreechart1.0.1 资源插件

    jfreechart-1.0.1.jar junit.jar servlet.jar JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: 饼图, 柱状图 ,线图,点图,时间变化图,甘特图, 股票行情图,混和...

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

    JFreeChart的JAR包和API文档(包含例子)

    JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包...

    JFreeChart使用的jar包

    JFreeChart的使用,需要导入的2个jar文件: jcommon-1.0.23.jar和jfreechart-1.0.19.jar。 可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 上传以作后续使用时备份.

    jfreechart所需jar包.zip

    jfreechart折线图所需jar包

    JFreeChart使用教程(中文).pdf

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够 用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    jfreechart-1.0.9+api

    jfreechart

    jfreechart的一个小总结

    关于jfreechart总结的一个小文档,是转载的,所有各位亲,如果愿意可以看看

    JFreeChart 指南 & JFreeChart 示例

    JFreeChart 指南 JFreeChart Guide JFreeChart 示例 JFreeChart demo

    jfreechart开发jar包

    jfreechart开发jar包,真正要引用到eclipse build path的是jfreechart-1.0.14\lib目录下的gnujaxp.jar、jcommon-1.017.jar和jfreechart-1.0.14.jar三个包,我用的就是这3个jar包。。

    jfreechart 饼形图

    jfreechart百分比在饼上, 有分离的饼。 private static JFreeChart createChart(PieDataset piedataset) { JFreeChart jfreechart = ChartFactory.createPieChart("Pie Chart Demo 2", piedataset, true, true, ...

    jfreechart 折线图 应用

    package: jfreechart-1.0.9.jar jcommon-1.0.12.jar 本人也上传了,可以在本人上传资源中找到 环境: myeclipse 6.5 jdk 1.6 该程序为main 函数,定义了三个方法,分别是jfreechart三种实现折线图的类型,返回的是...

    jfreechart 绘制横向立体柱状图

    利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错

Global site tag (gtag.js) - Google Analytics