当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > Java Web开发:小编谈JFreeChart统计柱形图表事例

Java Web开发
孙鑫老师原创:XML Schema初窥(二)
Java开源技术:J2EE应用服务器
用java开发Email工具之发送邮件
Java数据库程序中的存储过程设计
JAVA IO 设计模式彻底分析
Java Web开发:Java模式设计之单例模式(一)
Java Web开发:Java模式设计之单例模式(二)
Java Web开发:基于JVM的语言正在开始流行
Java Web开发:Java语言的十大问题,你能解决吗?
Java Web开发:Struts2 中.action和.do的奥秘
Java web:孙鑫老师谈Servlet的线程模型
java Web开发:孙鑫老师谈Session和Cookie的深入研究
Java Web开发:在线人数统计程序
Java Web开发:小编概述JSP技术
Java Web开发:FreeMarker模板使用方法讲解
Java Web开发:Tomcat和IIS的配合
Java Web开发:小编谈JFreeChart统计柱形图表事例
Java Web开发:程序员之家七月份Java Web开发总结
Java Web开发:Tomcat和Apache的配合
Java Web开发:iBATIS延迟加载的那点事

Java Web开发:小编谈JFreeChart统计柱形图表事例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 555 ::
收藏到网摘: n/a

使用JFreeChart生成柱状图需要使用CategoryDataset作为统计图表的数据载体,生成柱状图后依然可以使用JFreeChart来设置统计图表的标题和图例样式.下面是一个实例:

package lee;

import java.io.*;

import org.jfree.data.*;

import org.jfree.data.category.*;

import org.jfree.chart.*;

import org.jfree.chart.plot.*;

import org.jfree.chart.axis.*;

import java.awt.Font;

import java.awt.geom.Ellipse2D.Float;

import org.jfree.chart.title.TextTitle;

import org.jfree.chart.title.LegendTitle;

 

public class BarChart3DDemo

{

public static void main(String[] args) throws IOException

{

   JFreeChart chart = ChartFactory.createBarChart3D(

        "图书统计图", // 图表标题

        "图书", // 目录轴的显示标签

        "销量", // 数值轴的显示标签

        getDataSet(), // 数据集

        //PlotOrientation.HORIZONTAL , // 图表方向:水平

        PlotOrientation.VERTICAL , // 图表方向:垂直

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

        false, // 是否生成工具

        false // 是否生成URL链接

        );

      

   //重新设置图标标题,改变字体

   chart.setTitle(new TextTitle("图书统计图", new Font("黑体", Font.ITALIC , 22)));

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

   //取得横轴

   CategoryAxis categoryAxis = plot.getDomainAxis();

   //设置横轴显示标签的字体

   categoryAxis.setLabelFont(new Font("宋体" , Font.BOLD , 22));

   //分类标签以45度角倾斜

   categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

   categoryAxis.setTickLabelFont(new Font("宋体" , Font.BOLD , 18));

   //取得纵轴

   NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();

   //设置纵轴显示标签的字体

   numberAxis.setLabelFont(new Font("宋体" , Font.BOLD , 22));

 

   FileOutputStream fos = null;

   fos = new FileOutputStream("book.jpg");

   //将统计图标输出成JPG文件

   ChartUtilities.writeChartAsJPEG(

    fos, //输出到哪个输出流

    1, //JPEG图片的质量,0~1之间

    chart, //统计图标对象

    800, //

    600,//

    null //ChartRenderingInfo 信息

    );

   fos.close();

}

//返回一个CategoryDataset实例

private static CategoryDataset getDataSet()

{

   DefaultCategoryDataset dataset = new DefaultCategoryDataset();

   dataset.addValue(47000 , "" , "Spring2.0");

   dataset.addValue(38000 , "" , "J2EE");

   dataset.addValue(31000 , "" , "Ajax");

   dataset.addValue(29000 , "" , "JavaScript");

   dataset.addValue(25000 , "" , "Ajax In Action");

   return dataset;

}

}

在上面的代码中为了修改柱状图坐标轴的显示格式,使用了XxxAxis实例,其中CategoryAxis代表柱状图的横轴,NumberAxis代表柱状图的纵轴.分别调用CategoryPlot的如下两个方法,即可取得柱状图的横轴和纵轴:

1,getDomainAxis:返回柱状图的横轴.

2,getRangeAxis:返回柱状图的纵轴.

获得了柱状图的两个坐标轴之后,就可以任意修改坐标轴上的输出格式.