posts - 26,  comments - 14,  trackbacks - 0
JFreeChart项目简介

JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普 通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。为了减少篇幅本文主 要介绍前面三种类型的图表,读者可以触类旁通去开发其他样式的图表。




这里有点笔者在开发中遇见的问题需要注意的是:在使用Eclipse开发的时候会报一个莫名其妙的错误,错误可能指向某个类文件的第一行。遇到这样的问题一般是因为没有把Jcommon的jar包设置到项目的类路径中的缘故。具体的原因不祥。

1 饼图

对于饼图而言,数据集的获取用的不是同一个数据集类,另外饼图不支持同一个类别的项目中还有子项目这样的数据。我们只给出创建饼图的代码,至于写图表到一个文件则与柱状图一致,无需重复..

实例代码如下:

package com.dr.demo;


import java.awt.Color;
import java.awt.Font;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
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.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;


/**
 *
 * @author 詹成榜
 * @date 2010-2-25
 * @ClassName PolyLine.java
 * @Email 289153044@qq.com
 * @param 饼图
 * @param
 */

public class SalesCountServlet  {

 protected static void doGet() {
  System.out.println("图表已经建立!");
  
  CategoryDataset dataset = getDataSet();
  String fileName = "SalesCount.jpg";//文件名称
  JFreeChart chart = ChartFactory.createBarChart3D("产品销量图", // 图表标题
    "产品", // 目录轴的显示标签
    "销量", // 数值轴的显示标签
    dataset, // 数据集
    PlotOrientation.VERTICAL, // 图表方向:水平、垂直
    true, // 是否显示图例(对于简单的柱状图必须是false)
    false, // 是否生成工具
    false // 是否生成URL链接
    );
  
  configFont(chart);//设置中文格式

  FileOutputStream fos_jpg = null;
  try {
   String statImagePath = "d:";//存放文件的路径
   try {
    fos_jpg = new FileOutputStream(statImagePath+ fileName);
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   }
   try {
    ChartUtilities.writeChartAsJPEG(fos_jpg, 0.5f, chart, 400, 300,null);
   } catch (IOException e) {
    e.printStackTrace();
   }
  } finally {
   try {
    fos_jpg.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
    
 }
  public static void configFont(JFreeChart chart){  
         // 配置字体  
         Font xfont = new Font("宋体",Font.PLAIN,12) ;// X轴  
         Font yfont = new Font("宋体",Font.PLAIN,12) ;// Y轴  
         Font kfont = new Font("宋体",Font.PLAIN,12) ;// 底部  
         Font titleFont = new Font("隶书", Font.BOLD , 25) ; // 图片标题  
         CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象  
           
         // 图片标题  
         chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));  
           
         // 底部  
         chart.getLegend().setItemFont(kfont);  
           
         // X 轴  
         CategoryAxis domainAxis = plot.getDomainAxis();     
         domainAxis.setLabelFont(xfont);// 轴标题  
         domainAxis.setTickLabelFont(xfont);// 轴数值    
         domainAxis.setTickLabelPaint(Color.BLUE) ; // 字体颜色  
         domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 横轴上的label斜显示   
           
         // Y 轴  
         ValueAxis rangeAxis = plot.getRangeAxis();     
         rangeAxis.setLabelFont(yfont);   
         rangeAxis.setLabelPaint(Color.BLUE) ; // 字体颜色  
         rangeAxis.setTickLabelFont(yfont);    
           
     } 


 private static CategoryDataset getDataSet() {
  DefaultCategoryDataset dataset = new DefaultCategoryDataset();
   dataset.addValue(20, "销售图表", "苹果");
   dataset.addValue(20, "销售图表", "梨");
   dataset.addValue(30, "销售图表", "香蕉");
   dataset.addValue(40, "销售图表", "葡萄");
   dataset.addValue(50, "销售图表", "桔子");
  
  return dataset;
 }
 public static void main(String args[]){
  
  doGet();
 }
}

 

posted on 2011-03-06 22:36 龍ぜ殘剑 阅读(415) 评论(3)  编辑  收藏

FeedBack:
# re: JFreeChart项目简介
2011-12-12 14:33 | JFreeChart项目简介
JFreeChart项目简介  回复  更多评论
  
# re: JFreeChart项目简介
2011-12-12 14:34 | JFreeChart项目简介
@JFreeChart项目简介
JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介JFreeChart项目简介  回复  更多评论
  
# re: JFreeChart项目简介
2011-12-12 14:34 | JFreeChart项目简介
JFreeChart项目简介
JFreeChart项目简介
JFreeChart项目简介
JFreeChart项目简介  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜