我需要用jfreechart画图,效果如下
http://img785.photo.163.com/showmystage/16865875/2686176525.gif希望大家能提供点详细的资料,谢谢了
另外问一句,0.9.20版本的jfreechart可以画出如图的效果吗?

解决方案 »

  1.   

    http://hi.baidu.com/zbzb/blog/item/e1fed51bbfb591d5ac6e7546.html
      

  2.   

    /* ===========================================================
     * JFreeChart : a free chart library for the Java(tm) platform
     * ===========================================================
     *
     * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
     *
     * Project Info:  http://www.jfree.org/jfreechart/index.html
     *
     * This library is free software; you can redistribute it and/or modify it under the terms
     * of the GNU Lesser General Public License as published by the Free Software Foundation;
     * either version 2.1 of the License, or (at your option) any later version.
     *
     * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
     * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     * See the GNU Lesser General Public License for more details.
     *
     * You should have received a copy of the GNU Lesser General Public License along with this
     * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
     * Boston, MA 02111-1307, USA.
     *
     * [Java is a trade or registered trade of Sun Microsystems, Inc. 
     * in the United States and other countries.]
     *
     * --------------------
     * BarChart3DDemo3.java
     * --------------------
     * (C) Copyright 2003, 2004, by Object Refinery Limited and Contributors.
     *
     * Original Author:  David Gilbert (for Object Refinery Limited);
     * Contributor(s):   -;
     *
     * $Id: BarChart3DDemo3.java,v 1.9 2004/04/26 19:11:53 taqua Exp $
     *
     * Changes
     * -------
     * 24-Nov-2003 : Version 1 (DG);
     *
     */
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.axis.CategoryLabelPositions;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.BarRenderer;
    import org.jfree.chart.renderer.category.CategoryItemRenderer;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;/**
     * This demonstration shows a 3D bar chart with item labels displayed.
     *
     */
    public class BarChart3DDemo3 extends ApplicationFrame {    /**
         * Creates a new demo.
         *
         * @param title  the frame title.
         */
        public BarChart3DDemo3(final String title) {        super(title);
            
            final CategoryDataset dataset = createDataset();
            final JFreeChart chart = createChart(dataset);
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
            setContentPane(chartPanel);    }    // ****************************************************************************
        // * JFREECHART DEVELOPER GUIDE                                               *
        // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
        // * to purchase from Object Refinery Limited:                                *
        // *                                                                          *
        // * http://www.object-refinery.com/jfreechart/guide.html                     *
        // *                                                                          *
        // * Sales are used to provide funding for the JFreeChart project - please    * 
        // * support us so that we can continue developing free software.             *
        // ****************************************************************************
        
        /**
         * Creates a sample dataset.
         *
         * @return a sample dataset.
         */
       private CategoryDataset createDataset() {        final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            dataset.addValue(25.0, "Series 1", "Category 1");   
            dataset.addValue(34.0, "Series 1", "Category 2");   
            dataset.addValue(19.0, "Series 2", "Category 1");   
            dataset.addValue(29.0, "Series 2", "Category 2");   
            dataset.addValue(41.0, "Series 3", "Category 1");   
            dataset.addValue(33.0, "Series 3", "Category 2");   
            return dataset;    }
        
        /**
         * Creates a chart.
         * 
         * @param dataset  the dataset.
         * 
         * @return The chart.
         */
        private JFreeChart createChart(final CategoryDataset dataset) {
            
            final JFreeChart chart = ChartFactory.createBarChart3D(
                "3D Bar Chart Demo",      // chart title
                "Category",               // domain axis label
                "Value",                  // range axis label
                dataset,                  // data
                PlotOrientation.VERTICAL, // orientation
                true,                     // include legend
                true,                     // tooltips
                false                     // urls
            );        final CategoryPlot plot = chart.getCategoryPlot();
            final CategoryAxis axis = plot.getDomainAxis();
            axis.setCategoryLabelPositions(
                CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 8.0)
            );
            
            final CategoryItemRenderer renderer = plot.getRenderer();
            renderer.setItemLabelsVisible(true);
            final BarRenderer r = (BarRenderer) renderer;
            r.setMaximumBarWidth(0.05);
            
            return chart;    }
        
        
        /**
         * Starting point for the demonstration application.
         *
         * @param args  ignored.
         */
        public static void main(final String[] args) {        final BarChart3DDemo3 demo = new BarChart3DDemo3("3D Bar Chart Demo 3");
            demo.pack();
            RefineryUtilities.centerFrameOnScreen(demo);
            demo.setVisible(true);    }}
    简单的例子,你再这个基础上定制一下外观就可以了,关于外观定制自己看JFreeChart的API文档吧
      

  3.   

    多谢大家
    多谢“男的不会”大哥,我把你的程序放在0.9.20版本的jfreechart中,有好几个类不能识别,放到1.0.00中才可以使用我现在的问题是这样的,以前系统中有用到jfreechart 0.9.20的,现在要加新的功能进去,要求画出 BarChart3D 的图形,所以很郁闷,如果这个版本不能画出BarChart3D 图形的话,我得更新jfreechart,用新版本,这么一来就得修改以前的很多程序,郁闷