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

Java Web开发
浅谈http的无状态性
JFreeChart常用函数
为什么主流Java MVC框架如此难以使用
软件工程
JavaScript 中IE与FireFox不同之处
关于javascript 的贪婪与非贪婪模式
abstract class和interface的区别
java 写的一个蜘蛛程序
javascript 基本用法简介
java web开发中构建SOAP服务
用java匿名类来简化调试
Java Web开发构想
Java Web 开发的配置详解
WEB开发中的JAVA字符编码经验总结
孙鑫老师原创:Struts 2初体验
Hibernate常见的20个问题
关于Xdoclet生成hibernate映射文件
JAVA四种基本排序
提高Java代码可重用性的三个措施
孙鑫老师原创:XML Schema初窥(一)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 557 ::
收藏到网摘: 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:返回柱状图的纵轴.

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