100分紧急求救----JFreeChart的使用 本帖最后由 zhangya_815 于 2010-06-21 00:29:50 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有jchart要么? 我可以给你了代码的例子,和文档 网上大多是web开发方面的例子,所以来请大牛来了 JFreeChart tutorial (reprinted)http://www.screaming-penguin.com/node/4005 package com.dhc.telecom.reporting.util;import java.awt.Color;import java.awt.Font;import java.awt.RenderingHints;import java.io.File;import java.io.IOException;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;import org.jfree.chart.labels.StandardPieSectionLabelGenerator;import org.jfree.chart.labels.StandardXYItemLabelGenerator;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PiePlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.category.BarRenderer;import org.jfree.chart.renderer.category.LineAndShapeRenderer;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.data.category.CategoryDataset;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;import org.jfree.data.xy.XYDataset;public class ChartManager { private File imageFile; private String imageFileName = ".\\chart.jpg"; private JFreeChart freeChart; private CategoryDataset dataset; private DefaultPieDataset pieDataSet; private XYDataset xyDataset; private String title; private String xInfo=""; private String yInfo=""; /*定义各类图表所需的Dataset辅助*/ TimeSeries vTimeSeries=null; TimeSeriesCollection vTimeSeriesCollection=null; public JFreeChart crateXYLineChart() { try { freeChart = ChartFactory.createXYLineChart(title, xInfo,yInfo,xyDataset, PlotOrientation.VERTICAL, true, true, false); freeChart.setBackgroundPaint(new Color(193, 193, 193));//设置背景色 freeChart.getLegend().setItemFont((new Font("宋体", Font.PLAIN, 12)));//图示字体大小 //获得plot对象 XYPlot xyplot = freeChart.getXYPlot(); xyplot.setBackgroundPaint(new Color(233, 233, 233));// 设置数据区(中间部分背景色) xyplot.setDomainGridlinesVisible(true);// x轴分类轴网格是否可见 xyplot.setDomainGridlinePaint(Color.BLACK);//x轴虚线色彩 xyplot.setRangeGridlinesVisible(true);// y轴数据轴网格是否可见 xyplot.setRangeGridlinePaint(Color.red);//y轴虚线色彩 xyplot.setDomainGridlinesVisible(true);// x轴分类轴网格是否可见 xyplot.setDomainGridlinePaint(Color.WHITE);// 虚线色彩 xyplot.setRangeGridlinesVisible(true);// y轴数据轴网格是否可见 xyplot.setRangeGridlinePaint(Color.BLACK);// 虚线色彩 //配置字体 Font xlabelfont = new Font("宋体",Font.PLAIN,12) ;// x轴标题字体 Font xtickfont = new Font("宋体",Font.PLAIN,12) ;// x轴刻度字体 Font ylabelfont = new Font("宋体",Font.PLAIN,12) ;// Y轴标题字体 Font ytickfont = new Font("宋体",Font.PLAIN,12) ;// Y轴刻度字体 Font titleFont = new Font("宋体", Font.PLAIN , 25) ; // 图片标题 Font itemfont = new Font("宋体",Font.PLAIN,15) ;// 图示字体 xyplot.getDomainAxis().setLabelFont(xlabelfont); //x轴标题字体 xyplot.getDomainAxis().setTickLabelFont(xtickfont); //x轴刻度字体 xyplot.getRangeAxis().setLabelFont(ylabelfont); //y轴外围字体 xyplot.getRangeAxis().setTickLabelFont(ytickfont); //y轴标题字体 freeChart.getTitle().setFont(titleFont); //设置标题字体 freeChart.getLegend().setItemFont(itemfont); //设置最底下方框内的字体(图示Legend) //抗锯齿关闭 freeChart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); // 获取 x轴的操作: ValueAxis valueAxis = xyplot.getDomainAxis(); valueAxis.setTickMarksVisible(false); valueAxis.setTickMarkPaint(Color.red);//设置x轴刻度尺颜色 valueAxis.setLabelAngle(45.00d);//x轴标题旋转角度 valueAxis.setTickMarkInsideLength(5.2f);//刻度尺的长度 valueAxis.setTickMarkOutsideLength(5.5f);//刻度尺的长度 valueAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); // 获取 y 轴操作: NumberAxis numberAxis = (NumberAxis) xyplot.getRangeAxis(); numberAxis.setTickMarkPaint(Color.blue); numberAxis.setTickMarksVisible(true);//设置图示是否显示 numberAxis.setLowerMargin(0.05);// 设置距离图片左端距离此时为10% numberAxis.setUpperMargin(0.05);// 设置距离图片右端距离此时为百分之10 numberAxis.setLabelFont(new Font("黑体", Font.BOLD, 12));// Y轴标题字体 // double rangeYtick = 5D; // numberAxis.setTickUnit(new NumberTickUnit(rangeYtick));//y轴间隔为0.1 numberAxis.setTickLabelFont(new Font("黑体", Font.BOLD, 12)); // NumberFormat numberformat = new DecimalFormat("00%"); // numberAxis.setNumberFormatOverride(numberformat);// 设置y轴以百分比方式显示 // //绘制单元的设置 XYLineAndShapeRenderer XYLineAndShapeRenderer = (XYLineAndShapeRenderer) xyplot.getRenderer(); XYLineAndShapeRenderer.setBaseShapesVisible(true); // series点(即数据点)可见 XYLineAndShapeRenderer.setBaseLinesVisible(true); // series点(即数据点)间有连线可见 XYLineAndShapeRenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); XYLineAndShapeRenderer.setBaseItemLabelsVisible(true);//显示折点数据 this.imageFile = new File(this.imageFileName); System.out.println("here111=="+this.imageFileName);// ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600); return this.freeChart; } catch (Exception e) { System.out.println("IO操作异常!"); e.printStackTrace(); return null; } } public void creatLineChart() { try { freeChart = ChartFactory.createLineChart(this.title,this.xInfo,this.yInfo,this.dataset,PlotOrientation.VERTICAL,true,false,false); CategoryPlot plot = freeChart.getCategoryPlot(); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setUpperMargin(0.1); rangeAxis.setLowerMargin(0.1); plot.setRangeAxis(rangeAxis); //set the render LineAndShapeRenderer renderer = new LineAndShapeRenderer(); renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12)); renderer.setItemLabelsVisible(true); plot.setRenderer(renderer); this.imageFile = new File(this.imageFileName); ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600); } catch (IOException e) { System.out.println("IO操作异常!"); e.printStackTrace(); } } public JFreeChart creatPieChart() throws IOException { // 创建PieChart对象 this.freeChart = ChartFactory.createPieChart3D(this.title, this.pieDataSet, true, true, false); Font font = new Font("宋体", Font.ITALIC, 12); PiePlot plot = (PiePlot) this.freeChart.getPlot(); plot.setNoDataMessage("无数据可供显示!"); // 没有数据的时候显示的内容 plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}: ({2})")); this.freeChart.getTitle().setFont(font); plot.setLabelFont(font); this.freeChart.getLegend().setItemFont(font); this.imageFile = new File(this.imageFileName); ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600); System.out.println("here111=="+this.imageFileName); return this.freeChart; } public JFreeChart creatBarChart() throws IOException { freeChart = ChartFactory.createBarChart3D(this.title,this.xInfo,this.yInfo,this.dataset,PlotOrientation.VERTICAL,true,false,false); CategoryPlot plot = freeChart.getCategoryPlot(); //set the domainAxis CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setLowerMargin(0.1); domainAxis.setUpperMargin(0.1); plot.setDomainAxis(domainAxis); //set the rangeAxis ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setUpperMargin(0.1); rangeAxis.setLowerMargin(0.1); plot.setRangeAxis(rangeAxis); //set the render BarRenderer renderer = new BarRenderer(); renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12)); renderer.setItemLabelsVisible(true); plot.setRenderer(renderer); this.imageFile = new File(this.imageFileName); ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600); System.out.println("here111=="+this.imageFileName); return this.freeChart; } public void saveAsFile() throws IOException { this.imageFile = new File(this.imageFileName); ChartUtilities.saveChartAsJPEG(imageFile,freeChart,800,600); } public void setChartTitle(String title) { this.title = title; } public void setXInfo(String info) { xInfo = info; } public void setChartYInfo(String info) { yInfo = info; } public void setImgFileName(String imageFileName) { this.imageFileName = imageFileName; } public XYDataset getXyDataset() { return xyDataset; } public void setXyDataset(XYDataset xyDataset) { this.xyDataset = xyDataset; } public DefaultPieDataset getPieDataSet() { return pieDataSet; } public void setPieDataSet(DefaultPieDataset pieDataSet) { this.pieDataSet = pieDataSet; } public CategoryDataset getDataset() { return dataset; } public void setDataset(CategoryDataset dataset) { this.dataset = dataset; } }这个类够你用了,折线图,饼状图和柱状图都有了 请问你这个是基于JFreeChart的那个版本的? 求jfreechart-1.0.13应该怎么使用? 导入哪几个类? 求jfreechart-1.0.13应该怎么使用? 导入哪几个类?到CSDN去下一个看看,有的。看看楼上的文章,就差不多了, 网上没有对应的jar包么?csdn下载里也应该有。其他的就是找官方的实例了。 这里有详细的介绍,应该对你有用:http://www.blogjava.net/chunkyo/archive/2007/01/13/jfreechat.html java基础性问题 Hibernate SQLQuery 二级缓存和查询缓存 类成员变量一般加m_xxx吗?请教有经验者 [求助]请问,如何在Java中将一个磁盘上的文件移动位置? java中如何设置实参? java 聊天群聊 + 点对点聊天系统(服务器端/客户端) java 与数据库的连接问题 怎么才能实现右键菜单啊??? 这段代码中的bs表示的是什么 JDK nio2的问题 求一个httpclient的例子.! 关于java GUI中事件响应
http://www.screaming-penguin.com/node/4005
package com.dhc.telecom.reporting.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;
import java.io.File;
import java.io.IOException;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;public class ChartManager {
private File imageFile;
private String imageFileName = ".\\chart.jpg";
private JFreeChart freeChart;
private CategoryDataset dataset;
private DefaultPieDataset pieDataSet;
private XYDataset xyDataset;
private String title;
private String xInfo="";
private String yInfo="";
/*定义各类图表所需的Dataset辅助*/
TimeSeries vTimeSeries=null;
TimeSeriesCollection vTimeSeriesCollection=null;
public JFreeChart crateXYLineChart()
{
try
{
freeChart = ChartFactory.createXYLineChart(title, xInfo,yInfo,xyDataset, PlotOrientation.VERTICAL,
true,
true,
false);
freeChart.setBackgroundPaint(new Color(193, 193, 193));//设置背景色
freeChart.getLegend().setItemFont((new Font("宋体", Font.PLAIN, 12)));//图示字体大小
//获得plot对象
XYPlot xyplot = freeChart.getXYPlot();
xyplot.setBackgroundPaint(new Color(233, 233, 233));// 设置数据区(中间部分背景色)
xyplot.setDomainGridlinesVisible(true);// x轴分类轴网格是否可见
xyplot.setDomainGridlinePaint(Color.BLACK);//x轴虚线色彩
xyplot.setRangeGridlinesVisible(true);// y轴数据轴网格是否可见
xyplot.setRangeGridlinePaint(Color.red);//y轴虚线色彩
xyplot.setDomainGridlinesVisible(true);// x轴分类轴网格是否可见
xyplot.setDomainGridlinePaint(Color.WHITE);// 虚线色彩
xyplot.setRangeGridlinesVisible(true);// y轴数据轴网格是否可见
xyplot.setRangeGridlinePaint(Color.BLACK);// 虚线色彩
//配置字体
Font xlabelfont = new Font("宋体",Font.PLAIN,12) ;// x轴标题字体
Font xtickfont = new Font("宋体",Font.PLAIN,12) ;// x轴刻度字体
Font ylabelfont = new Font("宋体",Font.PLAIN,12) ;// Y轴标题字体
Font ytickfont = new Font("宋体",Font.PLAIN,12) ;// Y轴刻度字体
Font titleFont = new Font("宋体", Font.PLAIN , 25) ; // 图片标题
Font itemfont = new Font("宋体",Font.PLAIN,15) ;// 图示字体
xyplot.getDomainAxis().setLabelFont(xlabelfont); //x轴标题字体
xyplot.getDomainAxis().setTickLabelFont(xtickfont); //x轴刻度字体
xyplot.getRangeAxis().setLabelFont(ylabelfont); //y轴外围字体
xyplot.getRangeAxis().setTickLabelFont(ytickfont); //y轴标题字体
freeChart.getTitle().setFont(titleFont); //设置标题字体
freeChart.getLegend().setItemFont(itemfont); //设置最底下方框内的字体(图示Legend)
//抗锯齿关闭
freeChart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
// 获取 x轴的操作:
ValueAxis valueAxis = xyplot.getDomainAxis();
valueAxis.setTickMarksVisible(false);
valueAxis.setTickMarkPaint(Color.red);//设置x轴刻度尺颜色
valueAxis.setLabelAngle(45.00d);//x轴标题旋转角度
valueAxis.setTickMarkInsideLength(5.2f);//刻度尺的长度
valueAxis.setTickMarkOutsideLength(5.5f);//刻度尺的长度
valueAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// 获取 y 轴操作:
NumberAxis numberAxis = (NumberAxis) xyplot.getRangeAxis();
numberAxis.setTickMarkPaint(Color.blue);
numberAxis.setTickMarksVisible(true);//设置图示是否显示
numberAxis.setLowerMargin(0.05);// 设置距离图片左端距离此时为10%
numberAxis.setUpperMargin(0.05);// 设置距离图片右端距离此时为百分之10
numberAxis.setLabelFont(new Font("黑体", Font.BOLD, 12));// Y轴标题字体
// double rangeYtick = 5D;
// numberAxis.setTickUnit(new NumberTickUnit(rangeYtick));//y轴间隔为0.1
numberAxis.setTickLabelFont(new Font("黑体", Font.BOLD, 12));
// NumberFormat numberformat = new DecimalFormat("00%");
// numberAxis.setNumberFormatOverride(numberformat);// 设置y轴以百分比方式显示
//
//绘制单元的设置
XYLineAndShapeRenderer XYLineAndShapeRenderer = (XYLineAndShapeRenderer) xyplot.getRenderer();
XYLineAndShapeRenderer.setBaseShapesVisible(true); // series点(即数据点)可见
XYLineAndShapeRenderer.setBaseLinesVisible(true); // series点(即数据点)间有连线可见
XYLineAndShapeRenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
XYLineAndShapeRenderer.setBaseItemLabelsVisible(true);//显示折点数据
this.imageFile = new File(this.imageFileName);
System.out.println("here111=="+this.imageFileName);
// ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600);
return this.freeChart;
}
catch (Exception e)
{
System.out.println("IO操作异常!");
e.printStackTrace();
return null;
}
}
public void creatLineChart()
{
try
{
freeChart = ChartFactory.createLineChart(this.title,this.xInfo,this.yInfo,this.dataset,PlotOrientation.VERTICAL,true,false,false);
CategoryPlot plot = freeChart.getCategoryPlot();
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperMargin(0.1);
rangeAxis.setLowerMargin(0.1);
plot.setRangeAxis(rangeAxis);
//set the render
LineAndShapeRenderer renderer = new LineAndShapeRenderer();
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
this.imageFile = new File(this.imageFileName);
ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600);
}
catch (IOException e)
{
System.out.println("IO操作异常!");
e.printStackTrace();
}
}
public JFreeChart creatPieChart() throws IOException {
// 创建PieChart对象
this.freeChart = ChartFactory.createPieChart3D(this.title, this.pieDataSet,
true, true, false);
Font font = new Font("宋体", Font.ITALIC, 12);
PiePlot plot = (PiePlot) this.freeChart.getPlot();
plot.setNoDataMessage("无数据可供显示!"); // 没有数据的时候显示的内容
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}: ({2})"));
this.freeChart.getTitle().setFont(font);
plot.setLabelFont(font);
this.freeChart.getLegend().setItemFont(font);
this.imageFile = new File(this.imageFileName);
ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600);
System.out.println("here111=="+this.imageFileName);
return this.freeChart;
}
public JFreeChart creatBarChart() throws IOException
{
freeChart = ChartFactory.createBarChart3D(this.title,this.xInfo,this.yInfo,this.dataset,PlotOrientation.VERTICAL,true,false,false);
CategoryPlot plot = freeChart.getCategoryPlot();
//set the domainAxis
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLowerMargin(0.1);
domainAxis.setUpperMargin(0.1);
plot.setDomainAxis(domainAxis);
//set the rangeAxis
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperMargin(0.1);
rangeAxis.setLowerMargin(0.1);
plot.setRangeAxis(rangeAxis);
//set the render BarRenderer renderer = new BarRenderer();
renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
this.imageFile = new File(this.imageFileName);
ChartUtilities.saveChartAsJPEG(imageFile,100,freeChart,800,600);
System.out.println("here111=="+this.imageFileName);
return this.freeChart;
}
public void saveAsFile() throws IOException
{
this.imageFile = new File(this.imageFileName);
ChartUtilities.saveChartAsJPEG(imageFile,freeChart,800,600);
}
public void setChartTitle(String title) {
this.title = title;
}
public void setXInfo(String info) {
xInfo = info;
}
public void setChartYInfo(String info) {
yInfo = info;
}
public void setImgFileName(String imageFileName) {
this.imageFileName = imageFileName;
}
public XYDataset getXyDataset() {
return xyDataset;
}
public void setXyDataset(XYDataset xyDataset) {
this.xyDataset = xyDataset;
}
public DefaultPieDataset getPieDataSet() {
return pieDataSet;
}
public void setPieDataSet(DefaultPieDataset pieDataSet) {
this.pieDataSet = pieDataSet;
}
public CategoryDataset getDataset() {
return dataset;
}
public void setDataset(CategoryDataset dataset) {
this.dataset = dataset;
}
}
这个类够你用了,折线图,饼状图和柱状图都有了
jfreechart-1.0.13
应该怎么使用? 导入哪几个类?
jfreechart-1.0.13
应该怎么使用? 导入哪几个类?到CSDN去下一个看看,有的。看看楼上的文章,就差不多了,