- 浏览: 1315632 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (471)
- 原创文章 (4)
- Database (84)
- J2SE (63)
- Web (26)
- Javascript (30)
- Lucene (11)
- os (13)
- 算法 (8)
- Webservice (1)
- Open projects (18)
- Hibernate (18)
- Spring (15)
- Css (2)
- J2ee (2)
- 综合技术 (18)
- 安全管理 (13)
- PatternsInJava (27)
- NIO (5)
- Ibatis (2)
- 书籍收藏 (1)
- quartz (7)
- 并发编程 (15)
- oracle问题 (2)
- ios (60)
- coco2d-iphone (3)
- C++ (6)
- Zookeeper (2)
- golang (4)
- animation (2)
- android (1)
最新评论
-
dandingge123:
【引用】限制UITextField输入长度的方法 -
qja:
...
对List顺序,逆序,随机排列实例代码 -
安静听歌:
现在在搞这个,,,,,哎~头都大了,,,又freemarker ...
通用大型网站页面静态化解决方案(一) -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Quartz 配置参考 -
马清天:
[b][/b][list][*]引用[u][/u][/list ...
通用大型网站页面静态化解决方案(一)
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;
}
}
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;
}
}
发表评论
-
JavaScript初学者应注意的七个细节
2011-01-16 22:34 1072每种语言都有它特别的地方,对于JavaScript来说,使 ... -
META功能总结
2011-01-07 21:13 4623一、META的作用: meta标签通常用来为搜索引擎ro ... -
修改tomcat6配置,快速实现主域名、二级域名之间session共享
2010-12-02 22:04 2934项目中遇到了每个用户一个二级域名的应用,但在主域名登录后,在 ... -
实践中整理出tomcat集群和负载均衡
2010-11-25 23:33 1140(一)环境说明 (1)服务器有4台,一台安装apac ... -
httpsession的原理及负载均衡
2010-11-15 12:06 13506前阵子去面试正好被问到httpsession和cookie,今 ... -
Apache负载均衡+Tomcat集群
2010-10-26 21:56 1374核心提示:目标 : 使用 apache 和 tomcat ... -
Spring Ldap 域认证
2010-10-26 21:17 4437核心提示:近段时间接触了一个项目,用户认证部分是通过域认证 ... -
Spring + Tomcat 中配置连接池
2010-10-26 21:12 4812核心提示:Tomcat5 及 Tomcat6 下CP配置。 主 ... -
基于总线的消息服务(BBMS)的设计与实现
2010-10-26 21:09 2560核心提示:前言 异步事件的通知机制在比较有规模的软件设计中 ... -
JSON --- JAVA 使用方法
2010-10-25 22:51 1133JSON 即 JavaScript Object Natati ... -
大型门户网站架构分析
2010-10-24 15:48 5145千万人同时访问的网站,一般是有很多个数据库同时工作,说明白一点 ... -
fck config
2010-10-19 10:48 1499写道 * * FCKeditor - The text ... -
功能强大的fck编辑器(完整详解)
2010-10-19 10:39 3671一直都没找到完整的Fck ... -
ORACLE中的ROWID
2010-10-14 16:36 10631、rowid是一个伪列,是用来确保表中行的唯一性,它 ... -
FCKeditor在线编辑器
2010-10-14 16:20 1542FCKeditor在线编辑器 FCKeditor 这个开源 ... -
用java获取真实的ip地址
2010-10-14 16:18 2163在JSP里,获取客户端的IP地址的方法是:reques ... -
实践中整理出tomcat集群和负载均衡
2010-10-14 15:50 1118实践中整理出tomcat集群 ... -
关于MapleFetion
2010-07-28 17:40 1792http://code.google.com/p/maplef ... -
Java中如何实现Comet风格的Web应用(二)
2010-03-30 17:00 2813CometProcessor 接口要求实现 event 方法 ... -
Java中如何实现Comet风格的Web应用(一)
2010-03-30 16:55 1920开始 在本文中,我将展示如何使用各种不同的 Java ...
相关推荐
jfreechart-1.5.2.jar,jfreechart|jfreechart
Jfreechart 乱码分析和解决方法
JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...
jfreechart-1.0.1.jar junit.jar servlet.jar JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: 饼图, 柱状图 ,线图,点图,时间变化图,甘特图, 股票行情图,混和...
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包和API文档JFreeChart的JAR包...
JFreeChart的使用,需要导入的2个jar文件: jcommon-1.0.23.jar和jfreechart-1.0.19.jar。 可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 上传以作后续使用时备份.
jfreechart折线图所需jar包
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够 用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
jfreechart
关于jfreechart总结的一个小文档,是转载的,所有各位亲,如果愿意可以看看
JFreeChart 指南 JFreeChart Guide JFreeChart 示例 JFreeChart demo
jfreechart开发jar包,真正要引用到eclipse build path的是jfreechart-1.0.14\lib目录下的gnujaxp.jar、jcommon-1.017.jar和jfreechart-1.0.14.jar三个包,我用的就是这3个jar包。。
jfreechart百分比在饼上, 有分离的饼。 private static JFreeChart createChart(PieDataset piedataset) { JFreeChart jfreechart = ChartFactory.createPieChart("Pie Chart Demo 2", piedataset, true, true, ...
package: jfreechart-1.0.9.jar jcommon-1.0.12.jar 本人也上传了,可以在本人上传资源中找到 环境: myeclipse 6.5 jdk 1.6 该程序为main 函数,定义了三个方法,分别是jfreechart三种实现折线图的类型,返回的是...
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错